| plan 9 kernel history: overview | file list | diff list |
1991/0926/port/fault.c (diff list | history)
| 1991/0906/sys/src/9/port/fault.c:16,30 – 1991/0926/sys/src/9/port/fault.c:16,37 (short | long | prev | next) | ||
| 1991/0705 | Pte **p; Page **pg, *lkp, *new = 0; int type; | |
| 1991/0926 | char *sps; | |
| 1990/0227 | ||
| 1991/0926 | sps = u->p->psstate; u->p->psstate = "Fault"; | |
| 1991/0427 | m->pfault++; | |
| 1991/0705 | again: s = seg(u->p, addr, 1); | |
| 1991/0926 | if(s == 0) { u->p->psstate = sps; | |
| 1990/1212 | return -1; | |
| 1991/0926 | } | |
| 1991/0705 | if(!read && (s->type&SG_RONLY)) { qunlock(&s->lk); | |
| 1991/0926 | u->p->psstate = sps; | |
| 1991/0705 | return -1; | |
| 1990/0227 | } | |
| 1991/0705 | ||
| 1991/0906/sys/src/9/port/fault.c:112,117 – 1991/0926/sys/src/9/port/fault.c:119,125 | ||
| 1991/0719 | putpage(new); | |
| 1991/0607 | ||
| 1991/0705 | putmmu(addr, mmuphys, *pg); | |
| 1991/0926 | u->p->psstate = sps; | |
| 1991/0705 | return 0; } | |