xref: /freebsd/sys/amd64/include/smp.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
146280ae7SWarner 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 
140d2a2989SPeter Wemm #ifdef _KERNEL
150d2a2989SPeter Wemm 
160d2a2989SPeter Wemm #ifdef SMP
170d2a2989SPeter Wemm 
180d2a2989SPeter Wemm #ifndef LOCORE
190d2a2989SPeter Wemm 
207c958a41SKonstantin Belousov #include <x86/x86_smp.h>
210d2a2989SPeter Wemm 
220d2a2989SPeter Wemm /* global symbols in mpboot.S */
230d2a2989SPeter Wemm extern char			mptramp_start[];
240d2a2989SPeter Wemm extern u_int32_t		mptramp_pagetables;
250d2a2989SPeter Wemm 
260d2a2989SPeter Wemm /* IPI handlers */
270d2a2989SPeter Wemm inthand_t
28bd50262fSKonstantin Belousov 	IDTVEC(justreturn),	/* interrupt CPU with minimum overhead */
29bd50262fSKonstantin Belousov 	IDTVEC(justreturn1_pti),
30dc43978aSKonstantin Belousov 	IDTVEC(invlop_pti),
31dc43978aSKonstantin Belousov 	IDTVEC(invlop),
32bd50262fSKonstantin Belousov 	IDTVEC(ipi_intr_bitmap_handler_pti),
33aba10e13SAlexander Motin 	IDTVEC(ipi_swi_pti),
34bd50262fSKonstantin Belousov 	IDTVEC(cpustop_pti),
35bd50262fSKonstantin Belousov 	IDTVEC(cpususpend_pti),
36bd50262fSKonstantin Belousov 	IDTVEC(rendezvous_pti);
370d2a2989SPeter Wemm 
38dc43978aSKonstantin Belousov void	invlop_handler(void);
39*ac3ede53SRoger Pau Monné int	start_all_aps(void);
400d2a2989SPeter Wemm 
410d2a2989SPeter Wemm #endif /* !LOCORE */
420d2a2989SPeter Wemm #endif /* SMP */
430d2a2989SPeter Wemm 
440d2a2989SPeter Wemm #endif /* _KERNEL */
45477a642cSPeter Wemm #endif /* _MACHINE_SMP_H_ */
46