Lines Matching refs:pte

117 		Pte* pte = (Pte*)VirtFromPhys(ppn * B_PAGE_SIZE);
125 if (pte[i].isValid)
126 FreePageTable(pte[i].ppn, isKernel, level - 1);
145 Pte* pte = (Pte*)VirtFromPhys(ppn * B_PAGE_SIZE);
153 if (pte[i].isValid)
154 size += GetPageTableSize(pte[i].ppn, isKernel, level - 1);
186 Pte *pte = &userPageTable[i];
187 pte->ppn = kernelPageTable[i].ppn;
188 pte->isValid = true;
192 auto pte = (std::atomic<Pte>*)VirtFromPhys(fPageTable);
194 pte += VirtAdrPte(virtAdr, level);
195 if (!pte->load().isValid) {
210 pte->store(newPte);
212 pte = (std::atomic<Pte>*)VirtFromPhys(B_PAGE_SIZE * pte->load().ppn);
214 pte += VirtAdrPte(virtAdr, 0);
215 return pte;
222 std::atomic<Pte>* pte = LookupPte(virtAdr, false, NULL);
223 if (pte == NULL)
225 Pte pteVal = pte->load();
324 std::atomic<Pte>* pte = LookupPte(virtualAddress, true, reservation);
325 if (pte == NULL)
355 pte->store(newPte);
375 std::atomic<Pte>* pte = LookupPte(page, false, NULL);
376 if (pte != NULL) {
378 Pte oldPte = pte->exchange({});
419 std::atomic<Pte>* pte = LookupPte(address, false, NULL);
420 if (pte == NULL || !pte->load().isValid)
425 Pte oldPte = pte->exchange({});
458 std::atomic<Pte>* pte = LookupPte(start, false, NULL);
459 if (pte == NULL)
462 Pte oldPte = pte->exchange({});
582 std::atomic<Pte>* pte = LookupPte(address, false, NULL);
583 if (pte == NULL || !pte->load().isValid) {
590 Pte oldPte = pte->exchange({});
651 std::atomic<Pte>* pte = LookupPte(virtualAddress, false, NULL);
652 if (pte == NULL)
655 Pte pteVal = pte->load();
702 std::atomic<Pte>* pte = LookupPte(page, false, NULL);
703 if (pte == NULL || !pte->load().isValid) {
712 oldPte = pte->load();
727 if (pte->compare_exchange_strong(oldPte, newPte))
775 std::atomic<Pte>* pte = LookupPte(address, false, NULL);
776 if (pte == NULL || !pte->load().isValid)
779 *(std::atomic<uint64>*)pte |= ConvertAccessedFlags(flags);
795 std::atomic<Pte>* pte = LookupPte(address, false, NULL);
796 if (pte == NULL || !pte->load().isValid)
799 *(std::atomic<uint64>*)pte &= ~ConvertAccessedFlags(flags);
816 std::atomic<Pte>* pte = LookupPte(address, false, NULL);
817 if (pte == NULL || !pte->load().isValid)
823 oldPte = pte->load();
828 oldPte.val = ((std::atomic<uint64>*)pte)->fetch_and(
832 if (pte->compare_exchange_strong(oldPte, {}))
836 oldPte.val = ((std::atomic<uint64>*)pte)->fetch_and(