ref: a691c9111a69257e206ce895d35396d0f6225929
dir: /mmu.c/
#include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" void mmu1init(void) { } uintptr paddr(void *va) { if((uintptr)va >= KZERO) return (uintptr)va-KZERO; panic("paddr: va=%#p pc=%#p", va, getcallerpc(&va)); } uintptr cankaddr(uintptr pa) { if(pa < (uintptr)-KZERO) return -KZERO - pa; return 0; } void* kaddr(uintptr pa) { if(pa < (uintptr)-KZERO) return (void*)(pa + KZERO); panic("kaddr: pa=%#p pc=%#p", pa, getcallerpc(&pa)); } static void* kmapaddr(uintptr pa) { return nil; } KMap* kmap(Page *p) { return kmapaddr(p->pa); } void kunmap(KMap*) { } void kmapinval(void) { } static void* rampage(void) { uintptr pa; if(conf.npage) return mallocalign(BY2PG, BY2PG, 0, 0); pa = conf.mem[0].base; assert((pa % BY2PG) == 0); conf.mem[0].base += BY2PG; return KADDR(pa); } static void l1map(uintptr va, uintptr pa, uintptr pe, uintptr attr) { } void kmapram(uintptr base, uintptr limit) { } uintptr mmukmap(uintptr va, uintptr pa, usize size) { return 0; } void* vmap(uvlong pa, vlong size) { return nil; } void vunmap(void *, vlong) { } static uintptr* mmuwalk(uintptr va, int level) { return nil; } static Proc *asidlist[256]; static int allocasid(Proc *p) { return 0; } static void freeasid(Proc *p) { } void putasid(Proc *p) { } void putmmu(uintptr va, uintptr pa, Page *pg) { } static void mmufree(Proc *p) { } void mmuswitch(Proc *p) { } void mmurelease(Proc *p) { } void flushmmu(void) { } void checkmmu(uintptr, uintptr) { }