xref: /freebsd/sys/amd64/include/smp.h (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1 /*-
2  * ----------------------------------------------------------------------------
3  * "THE BEER-WARE LICENSE" (Revision 42):
4  * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you
5  * can do whatever you want with this stuff. If we meet some day, and you think
6  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
7  * ----------------------------------------------------------------------------
8  *
9  */
10 
11 #ifndef _MACHINE_SMP_H_
12 #define _MACHINE_SMP_H_
13 
14 #ifdef _KERNEL
15 
16 #ifdef SMP
17 
18 #ifndef LOCORE
19 
20 #include <x86/x86_smp.h>
21 
22 /* global symbols in mpboot.S */
23 extern char			mptramp_start[];
24 extern u_int32_t		mptramp_pagetables;
25 
26 /* IPI handlers */
27 inthand_t
28 	IDTVEC(justreturn),	/* interrupt CPU with minimum overhead */
29 	IDTVEC(justreturn1_pti),
30 	IDTVEC(invlop_pti),
31 	IDTVEC(invlop),
32 	IDTVEC(ipi_intr_bitmap_handler_pti),
33 	IDTVEC(ipi_swi_pti),
34 	IDTVEC(cpustop_pti),
35 	IDTVEC(cpususpend_pti),
36 	IDTVEC(rendezvous_pti);
37 
38 void	invlop_handler(void);
39 int	start_all_aps(void);
40 
41 #endif /* !LOCORE */
42 #endif /* SMP */
43 
44 #endif /* _KERNEL */
45 #endif /* _MACHINE_SMP_H_ */
46