Changeset View
Changeset View
Standalone View
Standalone View
head/sys/x86/include/x86_smp.h
Show First 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | |||||
extern u_long *ipi_invlrng_counts[MAXCPU]; | extern u_long *ipi_invlrng_counts[MAXCPU]; | ||||
extern u_long *ipi_invlpg_counts[MAXCPU]; | extern u_long *ipi_invlpg_counts[MAXCPU]; | ||||
extern u_long *ipi_invlcache_counts[MAXCPU]; | extern u_long *ipi_invlcache_counts[MAXCPU]; | ||||
extern u_long *ipi_rendezvous_counts[MAXCPU]; | extern u_long *ipi_rendezvous_counts[MAXCPU]; | ||||
#endif | #endif | ||||
/* IPI handlers */ | /* IPI handlers */ | ||||
inthand_t | inthand_t | ||||
IDTVEC(invltlb), /* TLB shootdowns - global */ | |||||
IDTVEC(invlpg), /* TLB shootdowns - 1 page */ | |||||
IDTVEC(invlrng), /* TLB shootdowns - page range */ | |||||
IDTVEC(invlcache), /* Write back and invalidate cache */ | |||||
IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ | IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ | ||||
IDTVEC(cpustop), /* CPU stops & waits to be restarted */ | IDTVEC(cpustop), /* CPU stops & waits to be restarted */ | ||||
IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */ | IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */ | ||||
IDTVEC(rendezvous); /* handle CPU rendezvous */ | IDTVEC(rendezvous); /* handle CPU rendezvous */ | ||||
typedef void (*smp_invl_cb_t)(struct pmap *, vm_offset_t addr1, | typedef void (*smp_invl_cb_t)(struct pmap *, vm_offset_t addr1, | ||||
vm_offset_t addr2); | vm_offset_t addr2); | ||||
/* functions in x86_mp.c */ | /* functions in x86_mp.c */ | ||||
void assign_cpu_ids(void); | void assign_cpu_ids(void); | ||||
void cpu_add(u_int apic_id, char boot_cpu); | void cpu_add(u_int apic_id, char boot_cpu); | ||||
void cpustop_handler(void); | void cpustop_handler(void); | ||||
void cpususpend_handler(void); | void cpususpend_handler(void); | ||||
void alloc_ap_trampoline(vm_paddr_t *physmap, unsigned int *physmap_idx); | void alloc_ap_trampoline(vm_paddr_t *physmap, unsigned int *physmap_idx); | ||||
void init_secondary_tail(void); | void init_secondary_tail(void); | ||||
void invltlb_handler(void); | |||||
void invlpg_handler(void); | |||||
void invlrng_handler(void); | |||||
void invlcache_handler(void); | |||||
void init_secondary(void); | void init_secondary(void); | ||||
void ipi_startup(int apic_id, int vector); | void ipi_startup(int apic_id, int vector); | ||||
void ipi_all_but_self(u_int ipi); | void ipi_all_but_self(u_int ipi); | ||||
void ipi_bitmap_handler(struct trapframe frame); | void ipi_bitmap_handler(struct trapframe frame); | ||||
void ipi_cpu(int cpu, u_int ipi); | void ipi_cpu(int cpu, u_int ipi); | ||||
int ipi_nmi_handler(void); | int ipi_nmi_handler(void); | ||||
void ipi_selected(cpuset_t cpus, u_int ipi); | void ipi_selected(cpuset_t cpus, u_int ipi); | ||||
void set_interrupt_apic_ids(void); | void set_interrupt_apic_ids(void); | ||||
Show All 12 Lines |