/barrelfish-master/lib/posixcompat/ |
H A D | sbrk_arrakis.c | 27 struct pml4_entry *pdpt = NULL; variable in typeref:struct:pml4_entry 31 assert(pdpt != NULL); 32 return pdpt->e.addr; 50 pdpt = malloc(sizeof(*pdpt)); 51 if (!pdpt) { 54 err = install_user_managed_pdpt(pdpt); 56 DEBUG_ERR(err, "installing pdpt"); 59 base = (void *)(pdpt->e.entry << 39); 67 if (!pdpt) { // Initializ [all...] |
H A D | nestedpaging.c | 111 printf("pdpt mapped at %p\n", ptable); 144 errval_t user_managed_map_frame(struct pml4_entry *pdpt, argument 149 assert(pdpt); 179 if (!pdpt->swtable[pdpte]) { 189 union x86_64_pdir_entry *pdpt_ptr = pdpt->addr; 190 // map new pdir in hw pdpt 192 // map new pdir in sw pdpt 193 pdpt->swtable[pdpte] = vpdir; 195 assert(pdpt->swtable[pdpte]); 196 pdir = pdpt [all...] |
H A D | nestedpaging.h | 415 // common data for ptable,pdir,pdpt 446 // one pdpt 455 * \brief Create a user-manageable pdpt. Returns 457 * pdpt. 462 * \brief Map frame at given offset in pdpt 463 * \arg pdpt the pdpt in which to insert 468 errval_t user_managed_map_frame(struct pml4_entry *pdpt,
|
/barrelfish-master/kernel/arch/x86_32/ |
H A D | debug.c | 26 uint32_t pdpt :2; member in struct:lin_addr::__anon74
|
/barrelfish-master/usr/tests/nested_paging_test/ |
H A D | main.c | 53 union x86_64_ptable_entry *pdpt = ptable; local 64 paging_x86_64_map_huge(&pdpt[i], fi.base + i*HUGE_PAGE_SIZE, 68 printf("first entry: 0x%"PRIxGENVADDR"\n", pdpt[0].raw);
|
/barrelfish-master/kernel/arch/x86_64/ |
H A D | debug.c | 27 uint64_t pdpt :9; member in struct:lin_addr::__anon75 52 printf("pdpt = %x\n", lin_addr.d.pdpt); 67 (lin_addr.d.pdpt * sizeof(union x86_64_pdir_entry)));
|
H A D | page_mappings_arch.c | 746 // get pdpt 747 union x86_64_pdir_entry *pdpt = (union x86_64_pdir_entry *)root_pt + X86_64_PML4_BASE(vaddr); local 748 if (!pdpt->raw) { return 0; } 749 genpaddr_t pdpt_gp = pdpt->d.base_addr << BASE_PAGE_BITS; 981 // calculate which part of pdpt to check 984 // read pdpt base 985 lvaddr_t pdpt = local_phys_to_mem((genpaddr_t)pde->d.base_addr << BASE_PAGE_BITS); local 987 pde = (union x86_64_pdir_entry *)pdpt + pdptidx; 992 // calculate which part of pdpt to check 995 // read pdpt bas 1042 union x86_64_pdir_entry *pdpt = (union x86_64_pdir_entry *)root_pt + pdpt_index; local [all...] |
H A D | vmx_vmkit.c | 987 union x86_64_pdir_entry *pdpt = (union x86_64_pdir_entry *)root_pt + pdpt_index; local 988 if (!pdpt->raw) { continue; } 990 genpaddr_t paddr = (genpaddr_t)pdpt->d.base_addr << BASE_PAGE_BITS; 993 pdpt->d.read_write, pdpt->d.user_supervisor, 994 pdpt->raw); 996 genpaddr_t pdpt_gp = pdpt->d.base_addr << BASE_PAGE_BITS; 1011 // goto next pdpt entry
|
/barrelfish-master/usr/bench/cow/ |
H A D | pmap_cow.c | 234 // TODO: better change to r/o on pml4e or pdpt? 241 // create copy of pdpt cap 324 genvaddr_t base, struct vnode **pdpt) 330 *pdpt = find_vnode(root, entry); 331 assert(*pdpt); 332 DEBUG_COW("%s: is_cloned=%d\n", __FUNCTION__, (*pdpt)->is_cloned); 333 if (!(*pdpt)->is_cloned) { 342 (*pdpt)->v.cap, 0, PTABLE_SIZE, PTABLE_ACCESS_READONLY, 343 (*pdpt)->u.vnode.mcn, newptable->u.vnode.mcn); 347 memcpy(newptable->v.u.vnode.children, (*pdpt) 323 cow_get_pdpt(struct pmap_x86 *pmap, genvaddr_t base, struct vnode **pdpt) argument 360 struct vnode *pdpt = NULL; local [all...] |
/barrelfish-master/lib/barrelfish/arch/x86_64/ |
H A D | pmap.c | 102 * \brief Returns the vnode for the pdpt mapping a given vspace address 105 struct vnode **pdpt); 107 struct vnode **pdpt) 114 if((*pdpt = pmap_find_vnode(root, X86_64_PML4_BASE(base))) == NULL) { 119 pdpt, base); 122 if ((*pdpt = pmap_find_vnode(root, X86_64_PML4_BASE(base))) != NULL) { 127 DEBUG_ERR(err, "alloc_vnode for pdpt"); 145 struct vnode *pdpt; local 146 err = get_pdpt(pmap, base, &pdpt); 150 assert(pdpt ! 106 get_pdpt(struct pmap_x86 *pmap, genvaddr_t base, struct vnode **pdpt) argument 231 struct vnode *pdpt = find_pdpt(pmap, base); local 625 struct vnode *pdpt = NULL, *pdir = NULL, *pt = NULL, *page = NULL; local 1007 struct vnode *pdpt, *pdir, *pt, *frame; local 1048 struct vnode *pdpt, *pdir, *pt, *frame; local [all...] |
/barrelfish-master/tools/elver/ |
H A D | elver.c | 122 static union pdir_entry pdpt[PTABLE_SIZE] variable in typeref:union:pdir_entry 296 paging_map_table(&boot_pml4[PML4_BASE(0)], (uint64_t)(uint32_t)pdpt); 297 paging_map_table(&pdpt[PDPT_BASE(0)], (uint64_t)(uint32_t)pdir);
|
/barrelfish-master/lib/barrelfish/arch/x86_32/ |
H A D | pmap.c | 473 // find page and last-level page table (can be pdir or pdpt) 786 struct vnode *pdpt = &x86->root, *pdir; local 788 assert(pdpt != NULL); 797 // iterate over pdpt entries 800 for (pdir = pdpt->u.vnode.children; pdir != NULL; pdir = pdir->next) {
|
/barrelfish-master/kernel/arch/armv8/ |
H A D | paging.c | 780 // calculate which part of pdpt to check 783 // read pdpt base 784 lvaddr_t pdpt = local_phys_to_mem((genpaddr_t)pte->d.base << BASE_PAGE_BITS); local 786 pte = (union armv8_ttable_entry *)pdpt + l1idx; 788 // calculate which part of pdpt to check 791 // read pdpt base 796 // calculate which part of pdpt to check 799 // read pdpt base
|
/barrelfish-master/usr/arrakismon/ |
H A D | guest.c | 658 struct vnode **pdpt); 697 // get pdpt through pmap 754 // get first pdpt (512g) 1040 static uint64_t pdpt[512] = { 1044 memcpy((void *)(guest_to_host(g->mem_low_va + 0x2000)), pdpt, sizeof(pdpt));
|