pmap: move the smp_targeted_tlb_shutdown pointer stuff to amd64 pmap.h

Fixes:	bec000c9c1ef409989685bb03ff0532907befb4aESC
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Konstantin Belousov 2024-06-06 08:03:14 +03:00
parent 215a18d502
commit 9c5d7e4a0c
2 changed files with 27 additions and 27 deletions

View File

@ -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 */

View File

@ -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)