]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/arm/include/smp.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / arm / include / smp.h
1 /* $FreeBSD$ */
2
3 #ifndef _MACHINE_SMP_H_
4 #define _MACHINE_SMP_H_
5
6 #include <sys/_cpuset.h>
7 #include <machine/pcb.h>
8
9 #define IPI_AST         0
10 #define IPI_PREEMPT     2
11 #define IPI_RENDEZVOUS  3
12 #define IPI_STOP        4
13 #define IPI_STOP_HARD   4
14 #define IPI_HARDCLOCK   6
15 #define IPI_TLB         7
16
17 void    init_secondary(int cpu);
18 void    mpentry(void);
19
20 void    ipi_all_but_self(u_int ipi);
21 void    ipi_cpu(int cpu, u_int ipi);
22 void    ipi_selected(cpuset_t cpus, u_int ipi);
23
24 /* PIC interface */
25 void    pic_ipi_send(cpuset_t cpus, u_int ipi);
26 void    pic_ipi_clear(int ipi);
27 int     pic_ipi_get(int arg);
28
29 /* Platform interface */
30 void    platform_mp_setmaxid(void);
31 int     platform_mp_probe(void);
32 void    platform_mp_start_ap(void);
33 void    platform_mp_init_secondary(void);
34
35 void    platform_ipi_send(cpuset_t cpus, u_int ipi);
36
37 /* global data in mp_machdep.c */
38 extern struct pcb               stoppcbs[];
39
40 #endif /* !_MACHINE_SMP_H_ */