| plan 9 kernel history: overview | file list | diff list |
1991/0718/pc/fault386.c (diff list | history)
| 1991/0716/sys/src/9/pc/fault386.c:7,19 – 1991/0718/sys/src/9/pc/fault386.c:7,38 (short | long | prev | next) | ||
| 1991/0711 | #include "io.h" | |
| 1991/0710 | void | |
| 1991/0718 | fault386(Ureg *ur) | |
| 1991/0710 | { | |
| 1991/0716 |
| |
| 1991/0718 | ulong addr; int read; int user; print("fault386\n"); dumpregs(ur); for(;;); addr = getcr2(); read = !(ur->ecode & 2); user = (ur->ecode & 4); if(fault(addr, read) < 0){ if(user){ pprint("user %s error addr=0x%lux\n", read? "read" : "write", addr); pprint("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->flags, ur->pc, ur->usp); pexit("Suicide", 0); } u->p->state = MMUing; dumpregs(ur); panic("fault: 0x%lux", addr); } | |
| 1991/0710 | } void | |
| 1991/0718 | faultinit(void) | |
| 1991/0710 | { | |
| 1991/0718 | setvec(Faultvec, fault386); | |
| 1991/0710 | } | |