diff options
Diffstat (limited to 'sys/amd64/include/smp.h')
-rw-r--r-- | sys/amd64/include/smp.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/amd64/include/smp.h b/sys/amd64/include/smp.h new file mode 100644 index 000000000000..8fbd89da0e57 --- /dev/null +++ b/sys/amd64/include/smp.h @@ -0,0 +1,48 @@ +/*- + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + * $FreeBSD$ + * + */ + +#ifndef _MACHINE_SMP_H_ +#define _MACHINE_SMP_H_ + +#ifdef _KERNEL + +#ifdef SMP + +#ifndef LOCORE + +#include <x86/x86_smp.h> + +/* global symbols in mpboot.S */ +extern char mptramp_start[]; +extern u_int32_t mptramp_pagetables; + +/* IPI handlers */ +inthand_t + IDTVEC(justreturn), /* interrupt CPU with minimum overhead */ + IDTVEC(justreturn1_pti), + IDTVEC(invlop_pti), + IDTVEC(invlop), + IDTVEC(ipi_intr_bitmap_handler_pti), + IDTVEC(ipi_swi_pti), + IDTVEC(cpustop_pti), + IDTVEC(cpususpend_pti), + IDTVEC(rendezvous_pti); + +void invlop_handler(void); +int native_start_all_aps(void); +void mp_bootaddress(vm_paddr_t *, unsigned int *); + +#endif /* !LOCORE */ +#endif /* SMP */ + +#endif /* _KERNEL */ +#endif /* _MACHINE_SMP_H_ */ |