| plan 9 kernel history: overview | file list | diff list |
1990/0801/port/page.c (diff list | history)
| 1990/0728/sys/src/9/port/page.c:251,256 – 1990/0801/sys/src/9/port/page.c:251,290 (short | long | prev | next) | ||
| 1990/0227 | unlock(&palloc); } | |
| 1990/0801 | /* * Move page to tail of list */ void unusepage(Page *p, int dolock) { return; if(dolock) lock(&palloc); /* * Unlink */ if(p->prev) p->prev->next = p->next; else palloc.head = p->next; if(p->next) p->next->prev = p->prev; else palloc.tail = p->prev; /* * Link */ p->prev = palloc.tail; p->next = 0; if(p->prev) p->prev->next = p; else palloc.head = p; palloc.tail = p; if(dolock) unlock(&palloc); } | |
| 1990/0227 | Orig* lookorig(ulong va, ulong npte, int flag, Chan *c) { | |
| 1990/0728/sys/src/9/port/page.c:493,499 – 1990/0801/sys/src/9/port/page.c:527,533 | ||
| 1990/0227 | if(max < min) return 0; | |
| 1990/0720 |
| |
| 1990/0801 | if(max > 20*1024*1024) {pprint("segaddr %lux\n", max);print("segaddr %lux\n", max);} | |
| 1990/0227 | if(min != s->minva) /* can't grow down yet (stacks: fault.c) */ return 0; max = (max+(BY2PG-1)) & ~(BY2PG-1); | |
| 1990/0728/sys/src/9/port/page.c:531,536 – 1990/0801/sys/src/9/port/page.c:565,571 | ||
| 1990/0227 | for(i=0; i<o->npte; i++,pte++) if(pg = pte->page){ /* assign = */ if(pg->ref == 1){ | |
| 1990/0801 | unusepage(pg, 1); | |
| 1990/0227 | pte->page = 0; pg->o = 0; } | |