| plan 9 kernel history: overview | file list | diff list |
1990/1212/port/page.c (diff list | history)
| 1990/1211/sys/src/9/port/page.c:55,61 – 1990/1212/sys/src/9/port/page.c:55,61 (short | long | prev | next) | ||
| 1990/0227 | { ulong p; | |
| 1990/1212 | if(palloc.active && n!=0) | |
| 1990/0227 | print("ialloc bad\n"); if(palloc.addr == 0) palloc.addr = ((ulong)&end)&~KZERO; | |
| 1990/1211/sys/src/9/port/page.c:185,191 – 1990/1212/sys/src/9/port/page.c:185,191 | ||
| 1990/0227 | continue; } print("free %d pages va %lux %lux %c\n", o1->npage, o->va, o1->qid, devchar[o1->type]); | |
| 1990/1212 | freepage(o1, 0); | |
| 1990/0227 | /* neworig will free the orig and pte's later */ unlock(o1); if(p->ref == 0) | |
| 1990/1211/sys/src/9/port/page.c:367,373 – 1990/1212/sys/src/9/port/page.c:367,373 | ||
| 1990/0227 | unlock(o); continue; } | |
| 1990/1212 | freepage(o, 1); | |
| 1990/0227 | freepte(o); unlock(o); o->next = origalloc.free; | |
| 1990/1211/sys/src/9/port/page.c:506,512 – 1990/1212/sys/src/9/port/page.c:506,512 | ||
| 1990/0227 | close(c); } if(!(o->flag&OCACHED) || o->npage==0){ | |
| 1990/1212 | freepage(o, 1); | |
| 1990/0227 | freepte(o); unlock(o); lock(&origalloc); | |
| 1990/1211/sys/src/9/port/page.c:566,572 – 1990/1212/sys/src/9/port/page.c:566,572 | ||
| 1990/0227 | * o is locked */ void | |
| 1990/1212 | freepage(Orig *o, int dolock) | |
| 1990/0227 | { PTE *pte; Page *pg; | |
| 1990/1211/sys/src/9/port/page.c:576,582 – 1990/1212/sys/src/9/port/page.c:576,582 | ||
| 1990/0227 | for(i=0; i<o->npte; i++,pte++) if(pg = pte->page){ /* assign = */ if(pg->ref == 1){ | |
| 1990/0801 |
| |
| 1990/1212 | unusepage(pg, dolock); | |
| 1990/0227 | pte->page = 0; pg->o = 0; } | |