xref: /freebsd/sys/i386/include/smp.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
186cb007fSWarner Losh /*-
2477a642cSPeter Wemm  * ----------------------------------------------------------------------------
3477a642cSPeter Wemm  * "THE BEER-WARE LICENSE" (Revision 42):
4477a642cSPeter Wemm  * <phk@FreeBSD.org> wrote this file.  As long as you retain this notice you
5477a642cSPeter Wemm  * can do whatever you want with this stuff. If we meet some day, and you think
6477a642cSPeter Wemm  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
7477a642cSPeter Wemm  * ----------------------------------------------------------------------------
8477a642cSPeter Wemm  *
9477a642cSPeter Wemm  */
10477a642cSPeter Wemm 
11477a642cSPeter Wemm #ifndef _MACHINE_SMP_H_
12477a642cSPeter Wemm #define _MACHINE_SMP_H_
13477a642cSPeter Wemm 
14664a31e4SPeter Wemm #ifdef _KERNEL
15477a642cSPeter Wemm 
16147ad8d5SJohn Baldwin #ifdef SMP
17477a642cSPeter Wemm 
18412f3e4dSSteve Passe #ifndef LOCORE
19412f3e4dSSteve Passe 
207c958a41SKonstantin Belousov #include <x86/x86_smp.h>
217c958a41SKonstantin Belousov 
22147ad8d5SJohn Baldwin #include <sys/bus.h>
236caa8a15SJohn Baldwin #include <machine/frame.h>
24147ad8d5SJohn Baldwin #include <machine/intr_machdep.h>
25e07ef9b0SJohn Baldwin #include <x86/apicvar.h>
26fa298d5eSAlexander Kabaev #include <machine/pcb.h>
2708942d46SSteve Passe 
28*dc43978aSKonstantin Belousov inthand_t
29*dc43978aSKonstantin Belousov 	IDTVEC(invltlb),	/* TLB shootdowns - global */
30*dc43978aSKonstantin Belousov 	IDTVEC(invlpg),		/* TLB shootdowns - 1 page */
31*dc43978aSKonstantin Belousov 	IDTVEC(invlrng),	/* TLB shootdowns - page range */
32*dc43978aSKonstantin Belousov 	IDTVEC(invlcache);	/* Write back and invalidate cache */
33*dc43978aSKonstantin Belousov 
34477a642cSPeter Wemm /* functions in mpboot.s */
35b63dc6adSAlfred Perlstein void bootMP(void);
36477a642cSPeter Wemm 
37*dc43978aSKonstantin Belousov void	invltlb_handler(void);
38*dc43978aSKonstantin Belousov void	invlpg_handler(void);
39*dc43978aSKonstantin Belousov void	invlrng_handler(void);
40*dc43978aSKonstantin Belousov void	invlcache_handler(void);
41*dc43978aSKonstantin Belousov 
42412f3e4dSSteve Passe #endif /* !LOCORE */
43147ad8d5SJohn Baldwin #endif /* SMP */
44db6a4261SMatthew Dillon 
45664a31e4SPeter Wemm #endif /* _KERNEL */
46477a642cSPeter Wemm #endif /* _MACHINE_SMP_H_ */
47