xref: /freebsd/sys/arm/include/smp.h (revision 2a664c03e55254b0f3b32dcdfc78179c0a57a8d2)
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