/haiku/src/system/kernel/arch/riscv64/ |
H A D | arch_vm.cpp | 36 Pte *pte = (Pte*)VirtFromPhys(pageTable); local 38 pte += VirtAdrPte(virtAdr, level); 39 if (!pte->isValid) { 43 pte = (Pte*)VirtFromPhys(B_PAGE_SIZE * pte->ppn); 45 pte += VirtAdrPte(virtAdr, 0); 46 return pte; 140 DumpPageTableInt(Pte* pte, uint64_t virtAdr, uint32_t level, PageTableDumper& dumper) argument 143 if (pte[i].isValid) { 144 if (!pte[ 216 Pte* pte = LookupPte(satp.ppn * B_PAGE_SIZE, base); local 260 Pte* pte = LookupPte(satp.ppn * B_PAGE_SIZE, virt); local [all...] |
H A D | RISCV64VMTranslationMap.cpp | 117 Pte* pte = (Pte*)VirtFromPhys(ppn * B_PAGE_SIZE); local 125 if (pte[i].isValid) 126 FreePageTable(pte[i].ppn, isKernel, level - 1); 145 Pte* pte = (Pte*)VirtFromPhys(ppn * B_PAGE_SIZE); local 153 if (pte[i].isValid) 154 size += GetPageTableSize(pte[i].ppn, isKernel, level - 1); 186 Pte *pte = &userPageTable[i]; local 187 pte->ppn = kernelPageTable[i].ppn; 188 pte->isValid = true; 192 auto pte local 222 std::atomic<Pte>* pte = LookupPte(virtAdr, false, NULL); local 324 std::atomic<Pte>* pte = LookupPte(virtualAddress, true, reservation); local 375 std::atomic<Pte>* pte = LookupPte(page, false, NULL); local 419 std::atomic<Pte>* pte = LookupPte(address, false, NULL); local 458 std::atomic<Pte>* pte = LookupPte(start, false, NULL); local 582 std::atomic<Pte>* pte = LookupPte(address, false, NULL); local 702 std::atomic<Pte>* pte = LookupPte(page, false, NULL); local 775 std::atomic<Pte>* pte = LookupPte(address, false, NULL); local 795 std::atomic<Pte>* pte = LookupPte(address, false, NULL); local 816 std::atomic<Pte>* pte = LookupPte(address, false, NULL); local [all...] |
H A D | arch_vm_translation_map.cpp | 48 Pte *pte = (Pte*)VirtFromPhys(sPageTable); local 50 pte += VirtAdrPte(virtAdr, level); 51 if (!pte->isValid) { 63 pte->val = newPte.val; 65 pte = (Pte*)VirtFromPhys(B_PAGE_SIZE * pte->ppn); 67 pte += VirtAdrPte(virtAdr, 0); 68 return pte; 77 Pte* pte = LookupPte(virtAdr, true, args, get_free_page); local 78 if (pte [all...] |
/haiku/src/system/boot/platform/efi/arch/riscv64/ |
H A D | arch_mmu.cpp | 106 DumpPageTableInt(Pte* pte, uint64_t virtAdr, uint32_t level, uint64& firstVirt, uint64& firstPhys, argument 110 if (pte[i].isValid) { 111 if (!pte[i].isRead && !pte[i].isWrite && !pte[i].isExec) { 115 DumpPageTableInt((Pte*)VirtFromPhys(B_PAGE_SIZE*pte[i].ppn), 121 pte[i].ppn * B_PAGE_SIZE, 123 pte[i].val & 0xff, 153 Pte *pte = (Pte*)VirtFromPhys(sPageTable); local 155 pte 181 Pte* pte = LookupPte(virtAdr, true); local 246 Pte* pte = &root[i]; local [all...] |
/haiku/src/system/kernel/arch/arm64/ |
H A D | VMSAv8TranslationMap.cpp | 144 uint64_t pte = pt[i]; 145 if ((pte & 0x3) == 0x3) { 146 FreeTable(pte & kPteAddrMask, level + 1); 163 uint64_t* pte = &TableFromPa(ptPa)[index]; 167 uint64_t oldPte = atomic_get64((int64*) pte); 196 if ((uint64_t) atomic_test_and_set64((int64*) pte, newTablePa | 0x3, oldPte) != oldPte) 251 uint64_t* pte = &TableFromPa(ptPa)[index]; 254 uint64_t oldPte = atomic_get64((int64*) pte); 270 if ((uint64_t) atomic_test_and_set64((int64*) pte, newPte, oldPte) != oldPte) 426 uint64_t pte; [all...] |
H A D | arch_int.cpp | 156 uint64_t *pte = &TableFromPa(ptPa)[index]; local 158 int type = *pte & 0x3; 159 uint64_t addr = *pte & kPteAddrMask; 162 if (!wr && (*pte & kAttrAF) == 0) { 163 atomic_or64((int64*)pte, kAttrAF); 166 if (wr && (*pte & kAttrSWDBM) != 0 && (*pte & kAttrAP2) != 0) { 167 atomic_and64((int64*)pte, ~kAttrAP2);
|
H A D | arch_vm_translation_map.cpp | 136 uint64_t* pte = &TableFromPa(ptPa)[index]; local 139 atomic_set64((int64*) pte, pa | 0x3); 142 uint64_t pteVal = atomic_get64((int64*) pte); 165 atomic_set64((int64*) pte, table | 0x3);
|
/haiku/src/system/boot/platform/riscv/ |
H A D | mmu.cpp | 139 Pte *pte = (Pte*)VirtFromPhys(sPageTable); local 141 pte += VirtAdrPte(virtAdr, level); 142 if (!pte->isValid) { 154 pte->val = newPte.val; 156 pte = (Pte*)VirtFromPhys(B_PAGE_SIZE * pte->ppn); 158 pte += VirtAdrPte(virtAdr, 0); 159 return pte; 167 Pte* pte = LookupPte(virtAdr, true); local 168 if (pte 228 Pte* pte = &root[i]; local [all...] |
/haiku/src/system/kernel/arch/x86/paging/64bit/ |
H A D | X86PagingMethod64Bit.cpp | 196 uint64* pte = &virtualPageTable[VADDR_TO_PTE(virtualAddress)]; local 198 (*pte & X86_64_PTE_PRESENT) == 0, 199 "virtual address: %#" B_PRIxADDR ", existing pte: %#" B_PRIx64, 200 virtualAddress, *pte); 203 PutPageTableEntryInTable(pte, physicalAddress, attributes, 0,
|
/haiku/src/system/kernel/arch/x86/paging/32bit/ |
H A D | X86PagingMethod32Bit.cpp | 181 page_table_entry& pte = fPageTable[ local 183 pte = (physicalAddress & X86_PTE_ADDRESS_MASK) 421 ", existing pte: %#" B_PRIx32, virtualAddress, fPageHolePageDir[index],
|
/haiku/src/system/kernel/arch/arm/paging/32bit/ |
H A D | ARMPagingMethod32Bit.cpp | 181 page_table_entry& pte = fPageTable[ local 183 pte = (physicalAddress & ARM_PTE_ADDRESS_MASK) 406 ", existing pte: %#" B_PRIx32, virtualAddress, fKernelVirtualPageDirectory[index],
|
/haiku/src/system/kernel/arch/m68k/paging/040/ |
H A D | M68KPagingMethod040.cpp | 250 page_table_entry& pte = fPageTable[ local 252 pte = TA_TO_PTEA(physicalAddress) | DT_PAGE 578 ", existing pte: %#" B_PRIx32, virtualAddress, fPageHolePageDir[index],
|
/haiku/src/system/kernel/arch/x86/paging/pae/ |
H A D | X86PagingMethodPAE.cpp | 499 pae_page_table_entry& pte = fPageTable[ local 501 pte = (physicalAddress & X86_PAE_PTE_ADDRESS_MASK) 707 ", existing pte: %#" B_PRIx64, virtualAddress, *pageDirEntry, *entry);
|