diff options
Diffstat (limited to 'sys/ia64/include/smp.h')
-rw-r--r-- | sys/ia64/include/smp.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/ia64/include/smp.h b/sys/ia64/include/smp.h new file mode 100644 index 0000000..65c85ef --- /dev/null +++ b/sys/ia64/include/smp.h @@ -0,0 +1,48 @@ +/* + * $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 |