pmap.h (82725ba9bf1fd59746a4006a06f24d4d61d142f2) | pmap.h (bd50262f705c4fed70ea94d16a0f19b5f5497cf2) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 2003 Peter Wemm. 5 * Copyright (c) 1991 Regents of the University of California. 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by --- 301 unchanged lines hidden (view full) --- 310 311/* 312 * The kernel virtual address (KVA) of the level 4 page table page is always 313 * within the direct map (DMAP) region. 314 */ 315struct pmap { 316 struct mtx pm_mtx; 317 pml4_entry_t *pm_pml4; /* KVA of level 4 page table */ | 1/*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 2003 Peter Wemm. 5 * Copyright (c) 1991 Regents of the University of California. 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by --- 301 unchanged lines hidden (view full) --- 310 311/* 312 * The kernel virtual address (KVA) of the level 4 page table page is always 313 * within the direct map (DMAP) region. 314 */ 315struct pmap { 316 struct mtx pm_mtx; 317 pml4_entry_t *pm_pml4; /* KVA of level 4 page table */ |
318 pml4_entry_t *pm_pml4u; /* KVA of user l4 page table */ |
|
318 uint64_t pm_cr3; | 319 uint64_t pm_cr3; |
320 uint64_t pm_ucr3; |
|
319 TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */ 320 cpuset_t pm_active; /* active on cpus */ 321 enum pmap_type pm_type; /* regular or nested tables */ 322 struct pmap_statistics pm_stats; /* pmap statistics */ 323 struct vm_radix pm_root; /* spare page table pages */ 324 long pm_eptgen; /* EPT pmap generation id */ 325 int pm_flags; 326 struct pmap_pcids pm_pcids[MAXCPU]; --- 97 unchanged lines hidden (view full) --- 424void pmap_invalidate_all(pmap_t); 425void pmap_invalidate_cache(void); 426void pmap_invalidate_cache_pages(vm_page_t *pages, int count); 427void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva, 428 boolean_t force); 429void pmap_get_mapping(pmap_t pmap, vm_offset_t va, uint64_t *ptr, int *num); 430boolean_t pmap_map_io_transient(vm_page_t *, vm_offset_t *, int, boolean_t); 431void pmap_unmap_io_transient(vm_page_t *, vm_offset_t *, int, boolean_t); | 321 TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */ 322 cpuset_t pm_active; /* active on cpus */ 323 enum pmap_type pm_type; /* regular or nested tables */ 324 struct pmap_statistics pm_stats; /* pmap statistics */ 325 struct vm_radix pm_root; /* spare page table pages */ 326 long pm_eptgen; /* EPT pmap generation id */ 327 int pm_flags; 328 struct pmap_pcids pm_pcids[MAXCPU]; --- 97 unchanged lines hidden (view full) --- 426void pmap_invalidate_all(pmap_t); 427void pmap_invalidate_cache(void); 428void pmap_invalidate_cache_pages(vm_page_t *pages, int count); 429void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva, 430 boolean_t force); 431void pmap_get_mapping(pmap_t pmap, vm_offset_t va, uint64_t *ptr, int *num); 432boolean_t pmap_map_io_transient(vm_page_t *, vm_offset_t *, int, boolean_t); 433void pmap_unmap_io_transient(vm_page_t *, vm_offset_t *, int, boolean_t); |
434void pmap_pti_add_kva(vm_offset_t sva, vm_offset_t eva, bool exec); 435void pmap_pti_remove_kva(vm_offset_t sva, vm_offset_t eva); |
|
432#endif /* _KERNEL */ 433 434/* Return various clipped indexes for a given VA */ 435static __inline vm_pindex_t 436pmap_pte_index(vm_offset_t va) 437{ 438 439 return ((va >> PAGE_SHIFT) & ((1ul << NPTEPGSHIFT) - 1)); --- 26 unchanged lines hidden --- | 436#endif /* _KERNEL */ 437 438/* Return various clipped indexes for a given VA */ 439static __inline vm_pindex_t 440pmap_pte_index(vm_offset_t va) 441{ 442 443 return ((va >> PAGE_SHIFT) & ((1ul << NPTEPGSHIFT) - 1)); --- 26 unchanged lines hidden --- |