xref: /freebsd/sys/amd64/include/smp.h (revision dc43978aa57835b1d9cab54dafdf28b02a9440ea)
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  *
9c3aac50fSPeter Wemm  * $FreeBSD$
10477a642cSPeter Wemm  *
11477a642cSPeter Wemm  */
12477a642cSPeter Wemm 
13477a642cSPeter Wemm #ifndef _MACHINE_SMP_H_
14477a642cSPeter Wemm #define _MACHINE_SMP_H_
15477a642cSPeter Wemm 
160d2a2989SPeter Wemm #ifdef _KERNEL
170d2a2989SPeter Wemm 
180d2a2989SPeter Wemm #ifdef SMP
190d2a2989SPeter Wemm 
200d2a2989SPeter Wemm #ifndef LOCORE
210d2a2989SPeter Wemm 
227c958a41SKonstantin Belousov #include <x86/x86_smp.h>
230d2a2989SPeter Wemm 
240d2a2989SPeter Wemm /* global symbols in mpboot.S */
250d2a2989SPeter Wemm extern char			mptramp_start[];
260d2a2989SPeter Wemm extern u_int32_t		mptramp_pagetables;
270d2a2989SPeter Wemm 
280d2a2989SPeter Wemm /* IPI handlers */
290d2a2989SPeter Wemm inthand_t
30bd50262fSKonstantin Belousov 	IDTVEC(justreturn),	/* interrupt CPU with minimum overhead */
31bd50262fSKonstantin Belousov 	IDTVEC(justreturn1_pti),
32*dc43978aSKonstantin Belousov 	IDTVEC(invlop_pti),
33*dc43978aSKonstantin Belousov 	IDTVEC(invlop),
34bd50262fSKonstantin Belousov 	IDTVEC(ipi_intr_bitmap_handler_pti),
35bd50262fSKonstantin Belousov 	IDTVEC(cpustop_pti),
36bd50262fSKonstantin Belousov 	IDTVEC(cpususpend_pti),
37bd50262fSKonstantin Belousov 	IDTVEC(rendezvous_pti);
380d2a2989SPeter Wemm 
39*dc43978aSKonstantin Belousov void	invlop_handler(void);
40079f7ef8SRoger Pau Monné int	native_start_all_aps(void);
419dba82a4SRoger Pau Monné void	mp_bootaddress(vm_paddr_t *, unsigned int *);
420d2a2989SPeter Wemm 
430d2a2989SPeter Wemm #endif /* !LOCORE */
440d2a2989SPeter Wemm #endif /* SMP */
450d2a2989SPeter Wemm 
460d2a2989SPeter Wemm #endif /* _KERNEL */
47477a642cSPeter Wemm #endif /* _MACHINE_SMP_H_ */
48