1 /* $FreeBSD$ */ 2 3 #ifndef _MACHINE_SMP_H_ 4 #define _MACHINE_SMP_H_ 5 6 #include <sys/_cpuset.h> 7 8 #define IPI_AST 0 9 #define IPI_PREEMPT 2 10 #define IPI_RENDEZVOUS 3 11 #define IPI_STOP 4 12 #define IPI_STOP_HARD 5 13 #define IPI_HARDCLOCK 6 14 #define IPI_TLB 7 15 16 void init_secondary(int cpu); 17 18 void ipi_all_but_self(u_int ipi); 19 void ipi_cpu(int cpu, u_int ipi); 20 void ipi_selected(cpuset_t cpus, u_int ipi); 21 22 /* PIC interface */ 23 void pic_ipi_send(cpuset_t cpus, u_int ipi); 24 void pic_ipi_clear(int ipi); 25 int pic_ipi_get(int arg); 26 27 /* Platform interface */ 28 void platform_mp_setmaxid(void); 29 int platform_mp_probe(void); 30 void platform_mp_start_ap(void); 31 void platform_mp_init_secondary(void); 32 33 void platform_ipi_send(cpuset_t cpus, u_int ipi); 34 35 #endif /* !_MACHINE_SMP_H_ */ 36