]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/arm/include/smp.h
ZFS: MFV 2.0-rc1-ga00c61
[FreeBSD/FreeBSD.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 enum {
10         IPI_AST,
11         IPI_PREEMPT,
12         IPI_RENDEZVOUS,
13         IPI_STOP,
14         IPI_STOP_HARD = IPI_STOP, /* These are synonyms on arm. */
15         IPI_HARDCLOCK,
16         IPI_TLB,                /* Not used now, but keep it reserved. */
17         IPI_CACHE,              /* Not used now, but keep it reserved. */
18         INTR_IPI_COUNT
19 };
20
21 void    init_secondary(int cpu);
22 void    mpentry(void);
23
24 void    ipi_all_but_self(u_int ipi);
25 void    ipi_cpu(int cpu, u_int ipi);
26 void    ipi_selected(cpuset_t cpus, u_int ipi);
27
28 /* Platform interface */
29 void    platform_mp_setmaxid(void);
30 void    platform_mp_start_ap(void);
31
32 /* global data in mp_machdep.c */
33 extern struct pcb               stoppcbs[];
34
35 #endif /* !_MACHINE_SMP_H_ */