| plan 9 kernel history: overview | file list | diff list |
1990/11211/port/page.c (diff list | history)
| 1990/1115/sys/src/9/port/page.c:294,304 – 1990/11211/sys/src/9/port/page.c:294,304 (short | long | prev | next) | ||
| 1990/0227 | ulong i; for(o=origalloc.arena,i=0; i<conf.norig; i++,o++) | |
| 1990/11211 | if(o->npage && o->qid.path==c->qid.path && o->va==va){ | |
| 1990/0227 | lock(o); | |
| 1990/11211 | if(o->npage && eqqid(o->qid, c->qid)) | |
| 1990/0227 | if(o->va==va && o->npte==npte && o->flag==flag) | |
| 1990/0303 |
| |
| 1990/11211 | if(o->mchan==c->mchan && o->type==c->type && eqqid(o->mqid, c->mqid)){ | |
| 1990/0227 | if(o->chan == 0){ o->chan = c; incref(c); | |
| 1990/1115/sys/src/9/port/page.c:329,335 – 1990/11211/sys/src/9/port/page.c:329,334 | ||
| 1990/0227 | o->nproc = 1; o->npage = 0; o->chan = c; | |
| 1990/0312 |
| |
| 1990/0227 | if(c){ o->type = c->type; o->qid = c->qid; | |
| 1990/1115/sys/src/9/port/page.c:338,345 – 1990/11211/sys/src/9/port/page.c:337,344 | ||
| 1990/0227 | incref(c); }else{ o->type = -1; | |
| 1990/0303 |
| |
| 1990/11211 | o->qid = (Qid){~0, ~0}; o->mqid = (Qid){~0, ~0}; | |
| 1990/0303 | o->mchan = 0; | |
| 1990/0227 | } | |
| 1990/0802 | if(u && u->p && waserror()){ | |
| 1990/1115/sys/src/9/port/page.c:401,408 – 1990/11211/sys/src/9/port/page.c:400,405 | ||
| 1990/0227 | } unlock(&modalloc); print("no mods\n"); | |
| 1990/0312 |
| |
| 1990/1013 |
| |
| 1990/0227 | if(u == 0) panic("newmod"); u->p->state = Wakeme; | |
| 1990/1115/sys/src/9/port/page.c:429,435 – 1990/11211/sys/src/9/port/page.c:426,431 | ||
| 1990/0227 | if(pte->page==0) panic("forkmod zero page"); if(pte->proc != u->p) panic("forkmod wrong page"); | |
| 1990/1013 | npte = newmod(o); | |
| 1990/0312 |
| |
| 1990/0227 | npte->proc = p; npte->page = pte->page; pte->page->ref++; | |
| 1990/1115/sys/src/9/port/page.c:490,496 – 1990/11211/sys/src/9/port/page.c:486,491 | ||
| 1990/0227 | } pg->ref--; o->npage--; | |
| 1990/0312 |
| |
| 1990/0227 | old = (PTEA*)pte; pte = pte->nextva; lock(&modalloc); | |
| 1990/1115/sys/src/9/port/page.c:653,659 – 1990/11211/sys/src/9/port/page.c:648,654 | ||
| 1990/0802 | unlock(&ptealloc); | |
| 1990/0814 | unlock(o); | |
| 1990/0802 | if(u && u->p) | |
| 1990/11211 | error(Enovmem); | |
| 1990/0802 | panic("growpte fails %d %lux %d\n", n, o->va, o->npte); | |
| 1990/0227 | } | |