1*9ef1f84bSDavid du Colombier #include "u.h" 2*9ef1f84bSDavid du Colombier #include "../port/lib.h" 3*9ef1f84bSDavid du Colombier #include "mem.h" 4*9ef1f84bSDavid du Colombier #include "dat.h" 5*9ef1f84bSDavid du Colombier #include "fns.h" 6*9ef1f84bSDavid du Colombier 7*9ef1f84bSDavid du Colombier #define _KADDR(pa) UINT2PTR(kseg0+((uintptr)(pa))) 8*9ef1f84bSDavid du Colombier #define _PADDR(va) PTR2UINT(((uintptr)(va)) - kseg0) 9*9ef1f84bSDavid du Colombier 10*9ef1f84bSDavid du Colombier void* KADDR(uintptr pa)11*9ef1f84bSDavid du ColombierKADDR(uintptr pa) 12*9ef1f84bSDavid du Colombier { 13*9ef1f84bSDavid du Colombier u8int* va; 14*9ef1f84bSDavid du Colombier 15*9ef1f84bSDavid du Colombier va = UINT2PTR(pa); 16*9ef1f84bSDavid du Colombier if(pa < TMFM) 17*9ef1f84bSDavid du Colombier return KSEG0+va; 18*9ef1f84bSDavid du Colombier return KSEG2+va; 19*9ef1f84bSDavid du Colombier } 20*9ef1f84bSDavid du Colombier 21*9ef1f84bSDavid du Colombier uintmem PADDR(void * va)22*9ef1f84bSDavid du ColombierPADDR(void* va) 23*9ef1f84bSDavid du Colombier { 24*9ef1f84bSDavid du Colombier uintmem pa; 25*9ef1f84bSDavid du Colombier 26*9ef1f84bSDavid du Colombier pa = PTR2UINT(va); 27*9ef1f84bSDavid du Colombier if(pa >= KSEG0 && pa < KSEG0+TMFM) 28*9ef1f84bSDavid du Colombier return pa-KSEG0; 29*9ef1f84bSDavid du Colombier if(pa > KSEG2) 30*9ef1f84bSDavid du Colombier return pa-KSEG2; 31*9ef1f84bSDavid du Colombier 32*9ef1f84bSDavid du Colombier panic("PADDR: va %#p pa #%p @ %#p\n", va, _PADDR(va), getcallerpc(&va)); 33*9ef1f84bSDavid du Colombier return 0; 34*9ef1f84bSDavid du Colombier } 35*9ef1f84bSDavid du Colombier 36*9ef1f84bSDavid du Colombier KMap* kmap(Page * page)37*9ef1f84bSDavid du Colombierkmap(Page* page) 38*9ef1f84bSDavid du Colombier { 39*9ef1f84bSDavid du Colombier // print("kmap(%#llux) @ %#p: %#p %#p\n", 40*9ef1f84bSDavid du Colombier // page->pa, getcallerpc(&page), 41*9ef1f84bSDavid du Colombier // page->pa, KADDR(page->pa)); 42*9ef1f84bSDavid du Colombier 43*9ef1f84bSDavid du Colombier return KADDR(page->pa); 44*9ef1f84bSDavid du Colombier } 45