smp.h revision 253762
1/* $FreeBSD: head/sys/arm/include/smp.h 253762 2013-07-29 08:07:35Z cognet $ */
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
16void	init_secondary(int cpu);
17
18void	ipi_all_but_self(u_int ipi);
19void	ipi_cpu(int cpu, u_int ipi);
20void	ipi_selected(cpuset_t cpus, u_int ipi);
21
22/* PIC interface */
23void	pic_ipi_send(cpuset_t cpus, u_int ipi);
24void	pic_ipi_clear(int ipi);
25int	pic_ipi_get(int arg);
26
27/* Platform interface */
28void	platform_mp_setmaxid(void);
29int	platform_mp_probe(void);
30void	platform_mp_start_ap(void);
31void	platform_mp_init_secondary(void);
32
33void	platform_ipi_send(cpuset_t cpus, u_int ipi);
34
35/* global data in mp_machdep.c */
36extern struct pcb               stoppcbs[];
37
38#endif /* !_MACHINE_SMP_H_ */
39