3 #ifndef _MACHINE_SMP_H_
4 #define _MACHINE_SMP_H_
6 #include <sys/_cpuset.h>
7 #include <machine/pcb.h>
11 #define IPI_RENDEZVOUS 3
13 #define IPI_STOP_HARD 5
14 #define IPI_HARDCLOCK 6
17 void init_secondary(int cpu);
19 void ipi_all_but_self(u_int ipi);
20 void ipi_cpu(int cpu, u_int ipi);
21 void ipi_selected(cpuset_t cpus, u_int ipi);
24 void pic_ipi_send(cpuset_t cpus, u_int ipi);
25 void pic_ipi_clear(int ipi);
26 int pic_ipi_get(int arg);
28 /* Platform interface */
29 void platform_mp_setmaxid(void);
30 int platform_mp_probe(void);
31 void platform_mp_start_ap(void);
32 void platform_mp_init_secondary(void);
34 void platform_ipi_send(cpuset_t cpus, u_int ipi);
36 /* global data in mp_machdep.c */
37 extern struct pcb stoppcbs[];
39 #endif /* !_MACHINE_SMP_H_ */