Lines Matching defs:pd

424     pde_t *pd    = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(pd_cap));
430 pd += (vptr >> pageBitsForSize(ARMSection));
431 pt = ptrFromPAddr(pde_pde_coarse_ptr_get_address(pd));
491 pde_t *pd = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(pd_cap));
494 pde_t *targetSlot = pd + (vptr >> pageBitsForSize(ARMSection));
511 static BOOT_CODE cap_t create_it_page_table_cap(cap_t pd, pptr_t pptr, vptr_t vptr, asid_t asid)
521 map_it_pt_cap(pd, cap);
645 pde_t *pd;
651 ret.pd = NULL;
656 pd = poolPtr->array[asid & MASK(asidLowBits)];
657 if (unlikely(!pd)) {
660 ret.pd = NULL;
665 ret.pd = pd;
725 pde_t *CONST lookupPDSlot(pde_t *pd, vptr_t vptr)
730 return pd + pdIndex;
733 lookupPTSlot_ret_t lookupPTSlot(pde_t *pd, vptr_t vptr)
738 pdSlot = lookupPDSlot(pd, vptr);
770 static resolve_ret_t resolveVAddr(pde_t *pd, vptr_t vaddr)
772 pde_t *pde = lookupPDSlot(pd, vaddr);
1045 pde_t *pd;
1060 pd = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(threadRoot));
1063 if (unlikely(find_ret.status != EXCEPTION_NONE || find_ret.pd != pd)) {
1072 armv_contextSwitch(pd, asid);
1075 static bool_t setVMRootForFlush(pde_t *pd, asid_t asid)
1083 PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(threadRoot)) == pd) {
1087 armv_contextSwitch(pd, asid);
1104 pde = find_ret.pd[pdIndex];
1108 return find_ret.pd;
1117 pde_t *pd;
1122 pd = asidPool->array[asid & MASK(asidLowBits)];
1123 assert(pd);
1125 pd[PD_ASID_SLOT] = pde_pde_invalid_new(0, false);
1131 pde_t *pd;
1136 pd = asidPool->array[asid & MASK(asidLowBits)];
1137 assert(pd);
1139 return pd[PD_ASID_SLOT];
1145 pde_t *pd;
1150 pd = asidPool->array[asid & MASK(asidLowBits)];
1151 assert(pd);
1155 pd[PD_ASID_SLOT] = pde_pde_invalid_new(hw_asid, true);
1220 pde_t *pd, *pdSlot;
1223 pd = pageTableMapped(asid, vaddr, pt);
1225 if (likely(pd != NULL)) {
1227 pdSlot = pd + pdIndex;
1231 flushTable(pd, asid, vaddr, pt);
1346 void deleteASID(asid_t asid, pde_t *pd)
1352 if (poolPtr != NULL && poolPtr->array[asid & MASK(asidLowBits)] == pd) {
1388 lu_ret = lookupPTSlot(find_ret.pd, vptr);
1415 lu_ret = lookupPTSlot(find_ret.pd, vptr);
1449 pde_t *pd;
1451 pd = lookupPDSlot(find_ret.pd, vptr);
1453 if (unlikely(pde_ptr_get_pdeType(pd) != pde_pde_section)) {
1457 if (unlikely(pde_pde_section_ptr_get_size(pd) != 0)) {
1459 if (unlikely(pde_pde_section_ptr_get_contiguous_hint(pd) != 0)) {
1463 if (unlikely(pde_pde_section_ptr_get_address(pd) != addr)) {
1467 *pd = pde_pde_invalid_new(0, 0);
1468 cleanByVA_PoU((word_t)pd, addrFromPPtr(pd));
1474 pde_t *pd;
1477 pd = lookupPDSlot(find_ret.pd, vptr);
1479 if (unlikely(pde_ptr_get_pdeType(pd) != pde_pde_section)) {
1483 if (unlikely(pde_pde_section_ptr_get_size(pd) != 1)) {
1485 if (unlikely(pde_pde_section_ptr_get_contiguous_hint(pd) != 1)) {
1489 if (unlikely(pde_pde_section_ptr_get_address(pd) != addr)) {
1494 pd[i] = pde_pde_invalid_new(0, 0);
1496 cleanCacheRange_PoU((word_t)&pd[0], LAST_BYTE_PDE(pd, SECTIONS_PER_SUPER_SECTION),
1497 addrFromPPtr(&pd[0]));
1508 flushPage(page_size, find_ret.pd, asid, vptr);
1511 void flushPage(vm_page_size_t page_size, pde_t *pd, asid_t asid, word_t vptr)
1520 root_switched = setVMRootForFlush(pd, asid);
1535 void flushTable(pde_t *pd, asid_t asid, word_t vptr, pte_t *pt)
1543 root_switched = setVMRootForFlush(pd, asid);
1613 vm_rights_t vmRights, vm_attributes_t attr, pde_t *pd)
1632 lu_ret = lookupPTSlot(pd, vaddr);
1672 lu_ret = lookupPTSlot(pd, vaddr);
1713 vm_rights_t vmRights, vm_attributes_t attr, pde_t *pd)
1724 ret.pde_entries.base = lookupPDSlot(pd, vaddr);
1754 ret.pde_entries.base = lookupPDSlot(pd, vaddr);
1852 static exception_t performPDFlush(int invLabel, pde_t *pd, asid_t asid, vptr_t start,
1859 root_switched = setVMRootForFlush(pd, asid);
1978 static exception_t performPageFlush(int invLabel, pde_t *pd, asid_t asid, vptr_t start,
1985 root_switched = setVMRootForFlush(pd, asid);
2057 pde_t *pd;
2093 /* Make sure that the supplied pd is ok */
2094 pd = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(cap));
2105 if (unlikely(find_ret.pd != pd)) {
2113 resolve_ret = resolveVAddr(pd, start);
2143 return performPDFlush(invLabel, pd, asid, start, end - 1, pstart);
2164 pde_t *pd, *pdSlot;
2215 pd = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(pdCap));
2239 if (unlikely(find_ret.pd != pd)) {
2250 pdSlot = &pd[pdIndex];
2287 pde_t *pd;
2318 pd = PDE_PTR(cap_page_directory_cap_get_capPDBasePtr(
2364 if (unlikely(find_ret.pd != pd)) {
2394 attr, pd);
2412 attr, pd);
2454 findPDForASID_ret_t pd;
2480 pd = findPDForASID(asid);
2481 if (unlikely(pd.status != EXCEPTION_NONE)) {
2527 return performPageFlush(invLabel, pd.pd, asid, start, end - 1, pstart);
2857 static readWordFromVSpace_ret_t readWordFromVSpace(pde_t *pd, word_t vaddr)
2867 pdSlot = lookupPDSlot(pd, vaddr);
2872 ptSlot = lookupPTSlot(pd, vaddr);
2906 pde_t *pd;
2918 pd = (pde_t *)pptr_of_cap(threadRoot);
2931 result = readWordFromVSpace(pd, address);