xref: /freebsd/sys/arm/include/smp.h (revision 18f8f46e9fa6b3d8d203d6e2f04eba2ea55fe4df)
16fc729afSOlivier Houchard /* $FreeBSD$ */
26fc729afSOlivier Houchard 
36fc729afSOlivier Houchard #ifndef _MACHINE_SMP_H_
46fc729afSOlivier Houchard #define _MACHINE_SMP_H_
56fc729afSOlivier Houchard 
6cf1a573fSOleksandr Tymoshenko #include <sys/_cpuset.h>
7*18f8f46eSOlivier Houchard #include <machine/pcb.h>
8cf1a573fSOleksandr Tymoshenko 
9cf1a573fSOleksandr Tymoshenko #define IPI_AST		0
10cf1a573fSOleksandr Tymoshenko #define IPI_PREEMPT	2
11cf1a573fSOleksandr Tymoshenko #define IPI_RENDEZVOUS	3
12cf1a573fSOleksandr Tymoshenko #define IPI_STOP	4
13cf1a573fSOleksandr Tymoshenko #define IPI_STOP_HARD	5
14cf1a573fSOleksandr Tymoshenko #define IPI_HARDCLOCK	6
15cf1a573fSOleksandr Tymoshenko #define IPI_TLB		7
16cf1a573fSOleksandr Tymoshenko 
17cf1a573fSOleksandr Tymoshenko void	init_secondary(int cpu);
18cf1a573fSOleksandr Tymoshenko 
19cf1a573fSOleksandr Tymoshenko void	ipi_all_but_self(u_int ipi);
20cf1a573fSOleksandr Tymoshenko void	ipi_cpu(int cpu, u_int ipi);
21cf1a573fSOleksandr Tymoshenko void	ipi_selected(cpuset_t cpus, u_int ipi);
22cf1a573fSOleksandr Tymoshenko 
23cf1a573fSOleksandr Tymoshenko /* PIC interface */
24cf1a573fSOleksandr Tymoshenko void	pic_ipi_send(cpuset_t cpus, u_int ipi);
25cf1a573fSOleksandr Tymoshenko void	pic_ipi_clear(int ipi);
26cf1a573fSOleksandr Tymoshenko int	pic_ipi_get(int arg);
27cf1a573fSOleksandr Tymoshenko 
28cf1a573fSOleksandr Tymoshenko /* Platform interface */
29cf1a573fSOleksandr Tymoshenko void	platform_mp_setmaxid(void);
30cf1a573fSOleksandr Tymoshenko int	platform_mp_probe(void);
31cf1a573fSOleksandr Tymoshenko void	platform_mp_start_ap(void);
32cf1a573fSOleksandr Tymoshenko void	platform_mp_init_secondary(void);
33cf1a573fSOleksandr Tymoshenko 
34cf1a573fSOleksandr Tymoshenko void	platform_ipi_send(cpuset_t cpus, u_int ipi);
35cf1a573fSOleksandr Tymoshenko 
3636bc03eeSOlivier Houchard /* global data in mp_machdep.c */
3736bc03eeSOlivier Houchard extern struct pcb               stoppcbs[];
3836bc03eeSOlivier Houchard 
396fc729afSOlivier Houchard #endif /* !_MACHINE_SMP_H_ */
40