MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_large_map_pde

Function pmap_large_map_pde

freebsd/amd64/amd64/pmap.c:10132–10152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10130}
10131
10132static pd_entry_t *
10133pmap_large_map_pde(vm_offset_t va)
10134{
10135 pdp_entry_t *pdpe;
10136 vm_page_t m;
10137 vm_paddr_t mphys;
10138
10139retry:
10140 pdpe = pmap_large_map_pdpe(va);
10141 if (*pdpe == 0) {
10142 m = pmap_large_map_getptp();
10143 if (m == NULL)
10144 goto retry;
10145 mphys = VM_PAGE_TO_PHYS(m);
10146 *pdpe = mphys | X86_PG_A | X86_PG_RW | X86_PG_V | pg_nx;
10147 } else {
10148 MPASS((*pdpe & X86_PG_PS) == 0);
10149 mphys = *pdpe & PG_FRAME;
10150 }
10151 return ((pd_entry_t *)PHYS_TO_DMAP(mphys) + pmap_pde_index(va));
10152}
10153
10154static pt_entry_t *
10155pmap_large_map_pte(vm_offset_t va)

Callers 3

pmap_large_map_pteFunction · 0.85
pmap_large_mapFunction · 0.85
pmap_large_map_wb_largeFunction · 0.85

Calls 3

pmap_large_map_pdpeFunction · 0.85
pmap_large_map_getptpFunction · 0.85
pmap_pde_indexFunction · 0.85

Tested by

no test coverage detected