From 7bc8f4d993fce693f664a9bc8361e7b5633ed7df Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 7 Jun 2014 09:26:57 +0200 Subject: [PATCH] pc64: implement checkmmu() debug function --- sys/src/9/pc64/mmu.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sys/src/9/pc64/mmu.c b/sys/src/9/pc64/mmu.c index 8081eb7d6..eeed702ed 100644 --- a/sys/src/9/pc64/mmu.c +++ b/sys/src/9/pc64/mmu.c @@ -438,10 +438,19 @@ putmmu(uintptr va, uintptr pa, Page *) 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