| plan 9 kernel history: overview | file list | diff list |
1999/0608/mpc/mmu.c (diff list | history)
| mpc/mmu.c on 1999/0121 | ||
| 1999/0121 | #include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "io.h" void mmuinit(void) { | |
| 1999/0127 | print("mmuinit\n"); | |
| 1999/0126 | kernelmmu(); | |
| 1999/0121 | } void | |
| 1999/0128 | flushmmu(void) { // print("flushmmu()\n"); _flushmmu(); } void | |
| 1999/0126 | mmuswitch(Proc*) | |
| 1999/0121 | { | |
| 1999/0126 | flushmmu(); | |
| 1999/0121 | } void mmurelease(Proc* proc) { USED(proc); } | |
| 1999/0127 | void | |
| 1999/0608 | putmmu(ulong va, ulong pa, Page *pg) | |
| 1999/0127 | { int x, r; | |
| 1999/0608 | char *ctl; //if((va&0x8000000) == 0) | |
| 1999/0128 | //print("putmmu va=%ux pa=%ux\n", va, pa); | |
| 1999/0127 | x = splhi(); r = _putmmu(va, pa); | |
| 1999/0608 | ctl = &pg->cachectl[m->machno]; switch(*ctl) { default: panic("putmmu: %d\n", *ctl); break; case PG_NOFLUSH: break; case PG_TXTFLUSH: icflush((void*)pg->va, BY2PG); *ctl = PG_NOFLUSH; break; case PG_NEWCOL: dcflush((void*)pg->va, BY2PG); *ctl = PG_NOFLUSH; break; } | |
| 1999/0127 | splx(x); } | |