x86_smp.h (7648bc9fee8dec6cb3c4941e0165a930fbe8dcb0) | x86_smp.h (3b23ffe27185fbc4c57c76db11039cd8d51eece6) |
---|---|
1/*- 2 * SPDX-License-Identifier: Beerware 3 * 4 * ---------------------------------------------------------------------------- 5 * "THE BEER-WARE LICENSE" (Revision 42): 6 * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you 7 * can do whatever you want with this stuff. If we meet some day, and you think 8 * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp --- 70 unchanged lines hidden (view full) --- 79 IDTVEC(invlpg), /* TLB shootdowns - 1 page */ 80 IDTVEC(invlrng), /* TLB shootdowns - page range */ 81 IDTVEC(invlcache), /* Write back and invalidate cache */ 82 IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ 83 IDTVEC(cpustop), /* CPU stops & waits to be restarted */ 84 IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */ 85 IDTVEC(rendezvous); /* handle CPU rendezvous */ 86 | 1/*- 2 * SPDX-License-Identifier: Beerware 3 * 4 * ---------------------------------------------------------------------------- 5 * "THE BEER-WARE LICENSE" (Revision 42): 6 * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you 7 * can do whatever you want with this stuff. If we meet some day, and you think 8 * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp --- 70 unchanged lines hidden (view full) --- 79 IDTVEC(invlpg), /* TLB shootdowns - 1 page */ 80 IDTVEC(invlrng), /* TLB shootdowns - page range */ 81 IDTVEC(invlcache), /* Write back and invalidate cache */ 82 IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ 83 IDTVEC(cpustop), /* CPU stops & waits to be restarted */ 84 IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */ 85 IDTVEC(rendezvous); /* handle CPU rendezvous */ 86 |
87typedef void (*smp_invl_cb_t)(struct pmap *, vm_offset_t addr1, 88 vm_offset_t addr2); 89 |
|
87/* functions in x86_mp.c */ 88void assign_cpu_ids(void); 89void cpu_add(u_int apic_id, char boot_cpu); 90void cpustop_handler(void); 91void cpususpend_handler(void); 92void alloc_ap_trampoline(vm_paddr_t *physmap, unsigned int *physmap_idx); 93void init_secondary_tail(void); 94void invltlb_handler(void); 95void invlpg_handler(void); 96void invlrng_handler(void); 97void invlcache_handler(void); 98void init_secondary(void); 99void ipi_startup(int apic_id, int vector); 100void ipi_all_but_self(u_int ipi); 101void ipi_bitmap_handler(struct trapframe frame); 102void ipi_cpu(int cpu, u_int ipi); 103int ipi_nmi_handler(void); 104void ipi_selected(cpuset_t cpus, u_int ipi); 105void set_interrupt_apic_ids(void); | 90/* functions in x86_mp.c */ 91void assign_cpu_ids(void); 92void cpu_add(u_int apic_id, char boot_cpu); 93void cpustop_handler(void); 94void cpususpend_handler(void); 95void alloc_ap_trampoline(vm_paddr_t *physmap, unsigned int *physmap_idx); 96void init_secondary_tail(void); 97void invltlb_handler(void); 98void invlpg_handler(void); 99void invlrng_handler(void); 100void invlcache_handler(void); 101void init_secondary(void); 102void ipi_startup(int apic_id, int vector); 103void ipi_all_but_self(u_int ipi); 104void ipi_bitmap_handler(struct trapframe frame); 105void ipi_cpu(int cpu, u_int ipi); 106int ipi_nmi_handler(void); 107void ipi_selected(cpuset_t cpus, u_int ipi); 108void set_interrupt_apic_ids(void); |
106void smp_cache_flush(void); 107void smp_masked_invlpg(cpuset_t mask, vm_offset_t addr, struct pmap *pmap); | 109void smp_cache_flush(smp_invl_cb_t curcpu_cb); 110void smp_masked_invlpg(cpuset_t mask, vm_offset_t addr, struct pmap *pmap, 111 smp_invl_cb_t curcpu_cb); |
108void smp_masked_invlpg_range(cpuset_t mask, vm_offset_t startva, | 112void smp_masked_invlpg_range(cpuset_t mask, vm_offset_t startva, |
109 vm_offset_t endva, struct pmap *pmap); 110void smp_masked_invltlb(cpuset_t mask, struct pmap *pmap); | 113 vm_offset_t endva, struct pmap *pmap, smp_invl_cb_t curcpu_cb); 114void smp_masked_invltlb(cpuset_t mask, struct pmap *pmap, 115 smp_invl_cb_t curcpu_cb); |
111void mem_range_AP_init(void); 112void topo_probe(void); 113void ipi_send_cpu(int cpu, u_int ipi); 114 115#endif | 116void mem_range_AP_init(void); 117void topo_probe(void); 118void ipi_send_cpu(int cpu, u_int ipi); 119 120#endif |