smp.h revision 266203
1/* $FreeBSD: stable/10/sys/arm/include/smp.h 266203 2014-05-16 00:14:50Z ian $ */
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	5
14#define IPI_HARDCLOCK	6
15#define IPI_TLB		7
16
17void	init_secondary(int cpu);
18void	mpentry(void);
19
20void	ipi_all_but_self(u_int ipi);
21void	ipi_cpu(int cpu, u_int ipi);
22void	ipi_selected(cpuset_t cpus, u_int ipi);
23
24/* PIC interface */
25void	pic_ipi_send(cpuset_t cpus, u_int ipi);
26void	pic_ipi_clear(int ipi);
27int	pic_ipi_get(int arg);
28
29/* Platform interface */
30void	platform_mp_setmaxid(void);
31int	platform_mp_probe(void);
32void	platform_mp_start_ap(void);
33void	platform_mp_init_secondary(void);
34
35void	platform_ipi_send(cpuset_t cpus, u_int ipi);
36
37/* global data in mp_machdep.c */
38extern struct pcb               stoppcbs[];
39
40#endif /* !_MACHINE_SMP_H_ */
41