git: 9c5d7e4a0c02 - main - pmap: move the smp_targeted_tlb_shutdown pointer stuff to amd64 pmap.h
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 06 Jun 2024 05:15:13 UTC
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9c5d7e4a0c02bc45b61f565586da2abcc65d70fa commit 9c5d7e4a0c02bc45b61f565586da2abcc65d70fa Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-06-06 05:03:14 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-06-06 05:15:08 +0000 pmap: move the smp_targeted_tlb_shutdown pointer stuff to amd64 pmap.h Fixes: bec000c9c1ef409989685bb03ff0532907befb4aESC Sponsored by: The FreeBSD Foundation --- sys/amd64/include/pmap.h | 27 +++++++++++++++++++++++++++ sys/vm/pmap.h | 27 --------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 591244e19b7c..273693e1f782 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -542,6 +542,33 @@ pmap_get_pcid(pmap_t pmap) } #endif /* sys/pcpu.h */ +/* + * Invalidation request. PCPU pc_smp_tlb_op uses u_int instead of the + * enum to avoid both namespace and ABI issues (with enums). + */ +enum invl_op_codes { + INVL_OP_TLB = 1, + INVL_OP_TLB_INVPCID = 2, + INVL_OP_TLB_INVPCID_PTI = 3, + INVL_OP_TLB_PCID = 4, + INVL_OP_PGRNG = 5, + INVL_OP_PGRNG_INVPCID = 6, + INVL_OP_PGRNG_PCID = 7, + INVL_OP_PG = 8, + INVL_OP_PG_INVPCID = 9, + INVL_OP_PG_PCID = 10, + INVL_OP_CACHE = 11, +}; + +typedef void (*smp_invl_local_cb_t)(struct pmap *, vm_offset_t addr1, + vm_offset_t addr2); +typedef void (*smp_targeted_tlb_shootdown_t)(pmap_t, vm_offset_t, vm_offset_t, + smp_invl_local_cb_t, enum invl_op_codes); + +void smp_targeted_tlb_shootdown_native(pmap_t, vm_offset_t, vm_offset_t, + smp_invl_local_cb_t, enum invl_op_codes); +extern smp_targeted_tlb_shootdown_t smp_targeted_tlb_shootdown; + #endif /* _KERNEL */ /* Return various clipped indexes for a given VA */ diff --git a/sys/vm/pmap.h b/sys/vm/pmap.h index c8ca6279031c..9101201287b2 100644 --- a/sys/vm/pmap.h +++ b/sys/vm/pmap.h @@ -167,33 +167,6 @@ void pmap_unwire(pmap_t pmap, vm_offset_t start, vm_offset_t end); void pmap_zero_page(vm_page_t); void pmap_zero_page_area(vm_page_t, int off, int size); -/* - * Invalidation request. PCPU pc_smp_tlb_op uses u_int instead of the - * enum to avoid both namespace and ABI issues (with enums). - */ -enum invl_op_codes { - INVL_OP_TLB = 1, - INVL_OP_TLB_INVPCID = 2, - INVL_OP_TLB_INVPCID_PTI = 3, - INVL_OP_TLB_PCID = 4, - INVL_OP_PGRNG = 5, - INVL_OP_PGRNG_INVPCID = 6, - INVL_OP_PGRNG_PCID = 7, - INVL_OP_PG = 8, - INVL_OP_PG_INVPCID = 9, - INVL_OP_PG_PCID = 10, - INVL_OP_CACHE = 11, -}; -typedef void (*smp_invl_local_cb_t)(struct pmap *, vm_offset_t addr1, - vm_offset_t addr2); -typedef void (*smp_targeted_tlb_shootdown_t)(pmap_t, vm_offset_t, vm_offset_t, - smp_invl_local_cb_t, enum invl_op_codes); - -extern void -smp_targeted_tlb_shootdown_native(pmap_t, vm_offset_t, vm_offset_t, - smp_invl_local_cb_t, enum invl_op_codes); -extern smp_targeted_tlb_shootdown_t smp_targeted_tlb_shootdown; - #define pmap_resident_count(pm) ((pm)->pm_stats.resident_count) #define pmap_wired_count(pm) ((pm)->pm_stats.wired_count)