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 * $FreeBSD$ 10 * 11 */ 12 13#ifndef _MACHINE_SMP_H_ 14#define _MACHINE_SMP_H_ 15 16#ifdef _KERNEL 17 18#ifdef SMP 19 20#ifndef LOCORE 21 22#include <x86/x86_smp.h> 23 24/* global symbols in mpboot.S */ 25extern char mptramp_start[]; 26extern u_int32_t mptramp_pagetables; 27 28/* IPI handlers */ 29inthand_t 30 IDTVEC(justreturn), /* interrupt CPU with minimum overhead */ 31 IDTVEC(justreturn1_pti), 32 IDTVEC(invltlb_pti), 33 IDTVEC(invltlb_pcid_pti), 34 IDTVEC(invltlb_pcid), /* TLB shootdowns - global, pcid */ 35 IDTVEC(invltlb_invpcid_pti_pti), 36 IDTVEC(invltlb_invpcid_nopti), 37 IDTVEC(invlpg_pti), 38 IDTVEC(invlpg_invpcid_pti), 39 IDTVEC(invlpg_invpcid), 40 IDTVEC(invlpg_pcid_pti), 41 IDTVEC(invlpg_pcid), 42 IDTVEC(invlrng_pti), 43 IDTVEC(invlrng_invpcid_pti), 44 IDTVEC(invlrng_invpcid), 45 IDTVEC(invlrng_pcid_pti), 46 IDTVEC(invlrng_pcid), 47 IDTVEC(invlcache_pti), 48 IDTVEC(ipi_intr_bitmap_handler_pti), 49 IDTVEC(ipi_swi_pti), 50 IDTVEC(cpustop_pti), 51 IDTVEC(cpususpend_pti), 52 IDTVEC(rendezvous_pti); 53 54void invltlb_pcid_handler(void); 55void invltlb_invpcid_handler(void); 56void invltlb_invpcid_pti_handler(void); 57void invlpg_invpcid_handler(void); 58void invlpg_pcid_handler(void); 59void invlrng_invpcid_handler(void); 60void invlrng_pcid_handler(void); 61int native_start_all_aps(void); 62void mp_bootaddress(vm_paddr_t *, unsigned int *); 63 64#endif /* !LOCORE */ 65#endif /* SMP */ 66 67#endif /* _KERNEL */ 68#endif /* _MACHINE_SMP_H_ */ 69