mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 10:48:02 +00:00
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:
parent
215a18d502
commit
9c5d7e4a0c
|
@ -542,6 +542,33 @@ pmap_get_pcid(pmap_t pmap)
|
||||||
}
|
}
|
||||||
#endif /* sys/pcpu.h */
|
#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 */
|
#endif /* _KERNEL */
|
||||||
|
|
||||||
/* Return various clipped indexes for a given VA */
|
/* Return various clipped indexes for a given VA */
|
||||||
|
|
|
@ -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(vm_page_t);
|
||||||
void pmap_zero_page_area(vm_page_t, int off, int size);
|
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_resident_count(pm) ((pm)->pm_stats.resident_count)
|
||||||
#define pmap_wired_count(pm) ((pm)->pm_stats.wired_count)
|
#define pmap_wired_count(pm) ((pm)->pm_stats.wired_count)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue