## diffname pc/fault386.c 1991/0710 ## diff -e /dev/null /n/bootesdump/1991/0710/sys/src/9/safari/fault386.c 0a #include "u.h" #include "lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "ureg.h" void faultinit(void) { setvec(Faultvec, fault386, SEGTG); } void fault386(Ureg *ur) { panic("fault"); } . ## diffname pc/fault386.c 1991/0711 ## diff -e /n/bootesdump/1991/0710/sys/src/9/safari/fault386.c /n/bootesdump/1991/0711/sys/src/9/safari/fault386.c 6a #include "io.h" . ## diffname pc/fault386.c 1991/0716 ## diff -e /n/bootesdump/1991/0711/sys/src/9/safari/fault386.c /n/bootesdump/1991/0716/sys/src/9/safari/fault386.c 12c setvec(Faultvec, fault386); . ## diffname pc/fault386.c 1991/0718 ## diff -e /n/bootesdump/1991/0716/sys/src/9/safari/fault386.c /n/bootesdump/1991/0718/sys/src/9/safari/fault386.c 18c setvec(Faultvec, fault386); . 16c faultinit(void) . 12c 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); } . 10c fault386(Ureg *ur) . ## diffname pc/fault386.c 1991/0719 ## diff -e /n/bootesdump/1991/0718/sys/src/9/safari/fault386.c /n/bootesdump/1991/0719/sys/src/9/safari/fault386.c 31a faulting = 0; . 22c n = fault(addr, read); print("fault returns %d\n", n); if(n < 0){ . 19a print("fault386 %lux ur %lux\n", addr, ur); dumpregs(ur); if(++times==3) panic("3rd time"); if(faulting) panic("double fault\n"); faulting = 1; . 16,18d 14a int n; static int times; . 8a int faulting; . ## diffname pc/fault386.c 1991/0720 ## diff -e /n/bootesdump/1991/0719/sys/src/9/safari/fault386.c /n/bootesdump/1991/0720/sys/src/9/safari/fault386.c 42a u->p->insyscall = insyscall; . 34,35c 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); . 31c if(++times==3) panic("3rd time in fault"); . 23,24d 19a insyscall = u->p->insyscall; u->p->insyscall = 1; . 17a int insyscall; . ## diffname pc/fault386.c 1991/0723 ## diff -e /n/bootesdump/1991/0720/sys/src/9/safari/fault386.c /n/bootesdump/1991/0723/sys/src/9/safari/fault386.c 32,33d 19d ## diffname pc/fault386.c 1991/0801 ## diff -e /n/bootesdump/1991/0723/sys/src/9/safari/fault386.c /n/bootesdump/1991/0801/sys/src/9/safari/fault386.c 40c panic("fault: 0x%lux 0x%lux", addr); . 23,24d ## diffname pc/fault386.c 1991/0808 ## diff -e /n/bootesdump/1991/0801/sys/src/9/safari/fault386.c /n/bootesdump/1991/0808/sys/src/9/safari/fault386.c 38c panic("fault: 0x%lux", addr); . ## diffname pc/fault386.c 1991/0809 ## diff -e /n/bootesdump/1991/0808/sys/src/9/safari/fault386.c /n/bootesdump/1991/0809/sys/src/9/safari/fault386.c 40d 27c user = (ur->cs&0xffff) == UESEL; . 23,25d ## diffname pc/fault386.c 1991/0926 ## diff -e /n/bootesdump/1991/0809/sys/src/9/safari/fault386.c /n/bootesdump/1991/0926/sys/src/9/safari/fault386.c 33d ## diffname pc/fault386.c 1991/1112 ## diff -e /n/bootesdump/1991/0926/sys/src/9/safari/fault386.c /n/bootesdump/1991/1112/sys/src/9/safari/fault386.c 28,31c sprint(buf, "sys: fault %s pc=0x%lux addr=0x%lux", read? "read" : "write", ur->pc, addr); postnote(u->p, 1, buf, NDebug); return; . 18a char buf[ERRLEN]; . ## diffname pc/fault386.c 1991/1218 ## diff -e /n/bootesdump/1991/1112/sys/src/9/safari/fault386.c /n/bootesdump/1991/1218/sys/src/9/safari/fault386.c 29,30c sprint(buf, "sys: trap: fault %s addr=0x%lux", read? "read" : "write", addr); . ## diffname pc/fault386.c 1992/0321 ## diff -e /n/bootesdump/1991/1218/sys/src/9/safari/fault386.c /n/bootesdump/1992/0321/sys/src/9/safari/fault386.c 2c #include "../port/lib.h" . ## diffname pc/fault386.c 1992/0805 ## diff -e /n/bootesdump/1992/0321/sys/src/9/safari/fault386.c /n/bootesdump/1992/0805/sys/src/9/safari/fault386.c 25a spllo(); . ## diffname pc/fault386.c 1993/0915 ## diff -e /n/bootesdump/1992/0808/sys/src/9/safari/fault386.c /n/fornaxdump/1993/0915/sys/src/brazil/pc/fault386.c 38c up->insyscall = insyscall; . 32c postnote(up, 1, buf, NDebug); . 26a /* print("F%d:A#%lux:U%d:R%d|", up->pid, addr, user, read);/**/ . 21,22c insyscall = up->insyscall; up->insyscall = 1; . ## diffname pc/fault386.c 1993/1113 ## diff -e /n/fornaxdump/1993/0915/sys/src/brazil/pc/fault386.c /n/fornaxdump/1993/1113/sys/src/brazil/pc/fault386.c 35a print("fault: 0x%lux", addr); . 27c /*print("F%d:A#%lux:U%d:R%d|", up->pid, addr, user, read);/**/ . ## diffname pc/fault386.c 1993/1124 ## diff -e /n/fornaxdump/1993/1113/sys/src/brazil/pc/fault386.c /n/fornaxdump/1993/1124/sys/src/brazil/pc/fault386.c 46c setvec(Faultvec, fault386, 0); . 20a USED(arg); . 11,12c static void fault386(Ureg *ur, void *arg) . ## diffname pc/fault386.c 1993/1125 ## diff -e /n/fornaxdump/1993/1124/sys/src/brazil/pc/fault386.c /n/fornaxdump/1993/1125/sys/src/brazil/pc/fault386.c 9,10d ## diffname pc/fault386.c 1994/0521 ## diff -e /n/fornaxdump/1993/1125/sys/src/brazil/pc/fault386.c /n/fornaxdump/1994/0521/sys/src/brazil/pc/fault386.c 36d 27d 20a if(up == 0){ dumpregs(ur); for(;;); } . ## diffname pc/fault386.c 1994/0525 ## diff -e /n/fornaxdump/1994/0521/sys/src/brazil/pc/fault386.c /n/fornaxdump/1994/0525/sys/src/brazil/pc/fault386.c 39a print("fault: 0x%lux", addr); . 31a /*print("F%d:A#%lux:U%d:R%d|", up->pid, addr, user, read);/**/ . 21,25d ## diffname pc/fault386.c 1994/0902 ## diff -e /n/fornaxdump/1994/0525/sys/src/brazil/pc/fault386.c /n/fornaxdump/1994/0902/sys/src/brazil/pc/fault386.c 38c panic("fault: 0x%lux\n", addr); . 36d 27d ## diffname pc/fault386.c 1997/0327 # deleted ## diff -e /n/fornaxdump/1994/0902/sys/src/brazil/pc/fault386.c /n/emeliedump/1997/0327/sys/src/brazil/pc/fault386.c 1,45d