smp.h revision 66458
166458Sdfr/* 266458Sdfr * $FreeBSD: head/sys/ia64/include/smp.h 66458 2000-09-29 13:46:07Z dfr $ 366458Sdfr */ 466458Sdfr#ifndef _MACHINE_SMP_H_ 566458Sdfr#define _MACHINE_SMP_H_ 666458Sdfr 766458Sdfr#ifdef _KERNEL 866458Sdfr 966458Sdfr#include <machine/mutex.h> 1066458Sdfr#include <machine/ipl.h> 1166458Sdfr#include <sys/ktr.h> 1266458Sdfr 1366458Sdfr#ifndef LOCORE 1466458Sdfr 1566458Sdfr#define BETTER_CLOCK /* unconditional on ia64 */ 1666458Sdfr 1766458Sdfr/* global data in mp_machdep.c */ 1866458Sdfrextern volatile u_int checkstate_probed_cpus; 1966458Sdfrextern volatile u_int checkstate_need_ast; 2066458Sdfrextern volatile u_int resched_cpus; 2166458Sdfrextern void (*cpustop_restartfunc) __P((void)); 2266458Sdfr 2366458Sdfrextern int smp_active; 2466458Sdfrextern int mp_ncpus; 2566458Sdfrextern u_int all_cpus; 2666458Sdfrextern u_int started_cpus; 2766458Sdfrextern u_int stopped_cpus; 2866458Sdfr 2966458Sdfr/* functions in mp_machdep.c */ 3066458Sdfrvoid mp_start(void); 3166458Sdfrvoid mp_announce(void); 3266458Sdfrvoid smp_invltlb(void); 3366458Sdfrvoid forward_statclock(int pscnt); 3466458Sdfrvoid forward_hardclock(int pscnt); 3566458Sdfrvoid forward_signal(struct proc *); 3666458Sdfrvoid forward_roundrobin(void); 3766458Sdfrint stop_cpus(u_int); 3866458Sdfrint restart_cpus(u_int); 3966458Sdfrvoid smp_rendezvous_action(void); 4066458Sdfrvoid smp_rendezvous(void (*)(void *), 4166458Sdfr void (*)(void *), 4266458Sdfr void (*)(void *), 4366458Sdfr void *arg); 4466458Sdfrvoid smp_init_secondary(void); 4566458Sdfr 4666458Sdfr#endif /* !LOCORE */ 4766458Sdfr#endif /* _KERNEL */ 4866458Sdfr#endif 49