5ec3344e22
not work on any real hardware (or fully work on any simulator). Much more needs to happen before this is actually functional but its nice to see the FreeBSD copyright message appear in the ia64 simulator.
49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
/*
|
|
* $FreeBSD$
|
|
*/
|
|
#ifndef _MACHINE_SMP_H_
|
|
#define _MACHINE_SMP_H_
|
|
|
|
#ifdef _KERNEL
|
|
|
|
#include <machine/mutex.h>
|
|
#include <machine/ipl.h>
|
|
#include <sys/ktr.h>
|
|
|
|
#ifndef LOCORE
|
|
|
|
#define BETTER_CLOCK /* unconditional on ia64 */
|
|
|
|
/* global data in mp_machdep.c */
|
|
extern volatile u_int checkstate_probed_cpus;
|
|
extern volatile u_int checkstate_need_ast;
|
|
extern volatile u_int resched_cpus;
|
|
extern void (*cpustop_restartfunc) __P((void));
|
|
|
|
extern int smp_active;
|
|
extern int mp_ncpus;
|
|
extern u_int all_cpus;
|
|
extern u_int started_cpus;
|
|
extern u_int stopped_cpus;
|
|
|
|
/* functions in mp_machdep.c */
|
|
void mp_start(void);
|
|
void mp_announce(void);
|
|
void smp_invltlb(void);
|
|
void forward_statclock(int pscnt);
|
|
void forward_hardclock(int pscnt);
|
|
void forward_signal(struct proc *);
|
|
void forward_roundrobin(void);
|
|
int stop_cpus(u_int);
|
|
int restart_cpus(u_int);
|
|
void smp_rendezvous_action(void);
|
|
void smp_rendezvous(void (*)(void *),
|
|
void (*)(void *),
|
|
void (*)(void *),
|
|
void *arg);
|
|
void smp_init_secondary(void);
|
|
|
|
#endif /* !LOCORE */
|
|
#endif /* _KERNEL */
|
|
#endif
|