ref: b905b9d4c212308ba108e9821239957542d9e870
parent: 9a8155269a8e02c1983e07b4833bc4899feccfcc
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Jun 7 05:26:57 EDT 2014
pc64: implement checkmmu() debug function
--- a/sys/src/9/pc64/mmu.c
+++ b/sys/src/9/pc64/mmu.c
@@ -438,10 +438,19 @@
invlpg(va);
}
+/*
+ * Double-check the user MMU.
+ * Error checking only.
+ */
void
checkmmu(uintptr va, uintptr pa)
{- USED(va, pa);
+ uintptr *pte;
+
+ pte = mmuwalk(m->pml4, va, 0, 0);
+ if(pte != 0 && (*pte & PTEVALID) != 0 && PPN(*pte) != pa)
+ print("%ld %s: va=%#p pa=%#p pte=%#p\n",+ up->pid, up->text, va, pa, *pte);
}
uintptr
--
⑨