| plan 9 kernel history: overview | file list | diff list |
1991/1108/power/faultmips.c (diff list | history)
| 1990/1212/sys/src/9/power/faultmips.c:17,22 – 1991/0425/sys/src/9/power/faultmips.c:17,23 (short | long) | ||
| 1990/1212 | extern char *excname[]; int read; | |
| 1991/0425 | m->pfault++; | |
| 1990/1212 | addr = ur->badvaddr; addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0425/sys/src/9/power/faultmips.c:17,23 – 1991/0427/sys/src/9/power/faultmips.c:17,22 (short | long) | ||
| 1990/1212 | extern char *excname[]; int read; | |
| 1991/0425 |
| |
| 1990/1212 | addr = ur->badvaddr; addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0427/sys/src/9/power/faultmips.c:15,20 – 1991/0705/sys/src/9/power/faultmips.c:15,21 (short | long) | ||
| 1990/1212 | { ulong addr; extern char *excname[]; | |
| 1991/0705 | char buf[ERRLEN]; | |
| 1990/1212 | int read; addr = ur->badvaddr; | |
| 1991/0427/sys/src/9/power/faultmips.c:22,30 – 1991/0705/sys/src/9/power/faultmips.c:23,33 | ||
| 1990/1212 | read = !(code==CTLBM || code==CTLBS); if(fault(addr, read) < 0){ if(user){ | |
| 1991/0705 | sprint(buf, "sys: fault %s pc=0x%lux addr=0x%lux", read? "read" : "write", ur->pc, ur->badvaddr); postnote(u->p, 1, buf, NDebug); notify(ur); return; | |
| 1990/1212 | } print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); | |
| 1991/0705/sys/src/9/power/faultmips.c:21,26 – 1991/0926/sys/src/9/power/faultmips.c:21,27 (short | long) | ||
| 1990/1212 | addr = ur->badvaddr; addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0926 | ||
| 1990/1212 | if(fault(addr, read) < 0){ if(user){ | |
| 1991/0705 | sprint(buf, "sys: fault %s pc=0x%lux addr=0x%lux", | |
| 1991/0705/sys/src/9/power/faultmips.c:31,37 – 1991/0926/sys/src/9/power/faultmips.c:32,37 | ||
| 1990/1212 | } print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); | |
| 1991/0926/sys/src/9/power/faultmips.c:27,33 – 1991/1108/sys/src/9/power/faultmips.c:27,32 (short | long) | ||
| 1991/0705 | sprint(buf, "sys: fault %s pc=0x%lux addr=0x%lux", read? "read" : "write", ur->pc, ur->badvaddr); postnote(u->p, 1, buf, NDebug); | |
| 1990/1212 | } print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); | |
| 1991/1108/sys/src/9/power/faultmips.c:24,31 – 1991/1218/sys/src/9/power/faultmips.c:24,31 (short | long) | ||
| 1991/0926 | ||
| 1990/1212 | if(fault(addr, read) < 0){ if(user){ | |
| 1991/0705 |
| |
| 1991/1218 | sprint(buf, "sys: trap: fault %s addr=0x%lux", read? "read" : "write", ur->badvaddr); | |
| 1991/0705 | postnote(u->p, 1, buf, NDebug); return; | |
| 1990/1212 | } | |
| 1991/1218/sys/src/9/power/faultmips.c:4,10 – 1992/0111/sys/src/9/power/faultmips.c:4,10 (short | long) | ||
| 1990/1212 | #include "dat.h" #include "fns.h" #include "ureg.h" | |
| 1992/0111 | #include "../port/error.h" | |
| 1990/1212 | /* * find out fault address and type of access. | |
| 1992/0111/sys/src/9/power/faultmips.c:1,5 – 1992/0321/sys/src/9/power/faultmips.c:1,5 (short | long) | ||
| 1990/1212 | #include "u.h" | |
| 1992/0321 | #include "../port/lib.h" | |
| 1990/1212 | #include "mem.h" #include "dat.h" #include "fns.h" | |
| 1992/0321/sys/src/9/power/faultmips.c:5,10 – 1992/0508/sys/src/9/power/faultmips.c:5,11 (short | long) | ||
| 1990/1212 | #include "fns.h" #include "ureg.h" | |
| 1992/0111 | #include "../port/error.h" | |
| 1992/0508 | #include "io.h" | |
| 1990/1212 | /* * find out fault address and type of access. | |
| 1992/0321/sys/src/9/power/faultmips.c:18,23 – 1992/0508/sys/src/9/power/faultmips.c:19,25 | ||
| 1991/0705 | char buf[ERRLEN]; | |
| 1990/1212 | int read; | |
| 1992/0508 | LEDON(LEDfault); | |
| 1990/1212 | addr = ur->badvaddr; addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1992/0321/sys/src/9/power/faultmips.c:27,32 – 1992/0508/sys/src/9/power/faultmips.c:29,35 | ||
| 1991/1218 | sprint(buf, "sys: trap: fault %s addr=0x%lux", read? "read" : "write", ur->badvaddr); | |
| 1991/0705 | postnote(u->p, 1, buf, NDebug); | |
| 1992/0508 | LEDOFF(LEDfault); | |
| 1991/0705 | return; | |
| 1990/1212 | } print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); | |
| 1992/0321/sys/src/9/power/faultmips.c:34,39 – 1992/0508/sys/src/9/power/faultmips.c:37,43 | ||
| 1990/1212 | dumpregs(ur); panic("fault"); } | |
| 1992/0508 | LEDOFF(LEDfault); | |
| 1990/1212 | } /* | |
| 1992/0508/sys/src/9/power/faultmips.c:21,26 – 1992/0609/sys/src/9/power/faultmips.c:21,28 (short | long) | ||
| 1990/1212 | ||
| 1992/0508 | LEDON(LEDfault); | |
| 1990/1212 | addr = ur->badvaddr; | |
| 1992/0609 | if(addr & KZERO) LEDON(LEDkfault); | |
| 1990/1212 | addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0926 | ||
| 1992/0609/sys/src/9/power/faultmips.c:34,41 – 1992/1105/sys/src/9/power/faultmips.c:34,41 (short | long) | ||
| 1992/0508 | LEDOFF(LEDfault); | |
| 1991/0705 | return; | |
| 1990/1212 | } | |
| 1992/1105 | iprint("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); iprint("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); | |
| 1990/1212 | dumpregs(ur); panic("fault"); } | |
| 1992/1105/sys/src/9/power/faultmips.c:21,28 – 1992/1124/sys/src/9/power/faultmips.c:21,32 (short | long) | ||
| 1990/1212 | ||
| 1992/0508 | LEDON(LEDfault); | |
| 1990/1212 | addr = ur->badvaddr; | |
| 1992/0609 |
| |
| 1992/1124 | if(addr & KZERO){ | |
| 1992/0609 | LEDON(LEDkfault); | |
| 1992/1124 | print("KZERO %s badvaddr=0x%lux r31=0x%lux\n", excname[code], ur->badvaddr, ur->r31); print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); } | |
| 1990/1212 | addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0926 | ||
| 1992/1105/sys/src/9/power/faultmips.c:34,41 – 1992/1124/sys/src/9/power/faultmips.c:38,45 | ||
| 1992/0508 | LEDOFF(LEDfault); | |
| 1991/0705 | return; | |
| 1990/1212 | } | |
| 1992/1105 |
| |
| 1992/1124 | print("kernel %s badvaddr=0x%lux\n", excname[code], ur->badvaddr); print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); | |
| 1990/1212 | dumpregs(ur); panic("fault"); } | |
| 1992/1124/sys/src/9/power/faultmips.c:21,32 – 1992/1125/sys/src/9/power/faultmips.c:21,28 (short | long) | ||
| 1990/1212 | ||
| 1992/0508 | LEDON(LEDfault); | |
| 1990/1212 | addr = ur->badvaddr; | |
| 1992/1124 |
| |
| 1992/1125 | if(addr & KZERO) | |
| 1992/0609 | LEDON(LEDkfault); | |
| 1992/1124 |
| |
| 1990/1212 | addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0926 | ||
| 1992/1125/sys/src/9/power/faultmips.c:21,27 – 1992/1126/sys/src/9/power/faultmips.c:21,27 (short | long) | ||
| 1990/1212 | ||
| 1992/0508 | LEDON(LEDfault); | |
| 1990/1212 | addr = ur->badvaddr; | |
| 1992/1125 |
| |
| 1992/1126 | if((addr & KZERO) && (0xffff0000 & addr) != USERADDR) | |
| 1992/0609 | LEDON(LEDkfault); | |
| 1990/1212 | addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1992/1125/sys/src/9/power/faultmips.c:39,45 – 1992/1126/sys/src/9/power/faultmips.c:39,45 | ||
| 1990/1212 | dumpregs(ur); panic("fault"); } | |
| 1992/0508 |
| |
| 1992/1126 | LEDOFF(LEDfault|LEDkfault); | |
| 1990/1212 | } /* | |
| 1992/1126/sys/src/9/power/faultmips.c:14,45 – 1993/0501/sys/src/9/power/faultmips.c:14,43 (short | long) | ||
| 1990/1212 | void faultmips(Ureg *ur, int user, int code) { | |
| 1993/0501 | int read; | |
| 1990/1212 | ulong addr; extern char *excname[]; | |
| 1991/0705 |
| |
| 1990/1212 |
| |
| 1993/0501 | char *p, buf[ERRLEN]; | |
| 1990/1212 | ||
| 1992/0508 |
| |
| 1990/1212 | addr = ur->badvaddr; | |
| 1992/1126 |
| |
| 1992/0609 |
| |
| 1990/1212 | addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); | |
| 1991/0926 | ||
| 1990/1212 |
| |
| 1991/1218 |
| |
| 1991/0705 |
| |
| 1992/0508 |
| |
| 1991/0705 |
| |
| 1990/1212 |
| |
| 1992/1124 |
| |
| 1990/1212 |
| |
| 1993/0501 | if(fault(addr, read) == 0) return; if(user) { p = "store"; if(read) p = "load"; sprint(buf, "sys: trap: fault %s addr=0x%lux", p, ur->badvaddr); postnote(up, 1, buf, NDebug); return; | |
| 1990/1212 | } | |
| 1992/1126 |
| |
| 1993/0501 | print("kernel %s vaddr=0x%lux\n", excname[code], ur->badvaddr); print("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->status, ur->pc, ur->sp); dumpregs(ur); panic("fault"); | |
| 1990/1212 | } /* | |
| 1992/1126/sys/src/9/power/faultmips.c:49,55 – 1993/0501/sys/src/9/power/faultmips.c:47,53 | ||
| 1990/1212 | evenaddr(ulong addr) { if(addr & 3){ | |
| 1993/0501 | postnote(up, 1, "sys: odd address", NDebug); | |
| 1990/1212 | error(Ebadarg); } } | |
| 1993/0501/sys/src/9/power/faultmips.c:1,53 – 1997/0327/sys/src/9/power/faultmips.c:0 (short | long) | ||
|
Deleted.
rsc Mon Mar 7 10:32:54 2005 | ||
| 1990/1212 |
| |
| 1992/0321 |
| |
| 1990/1212 |
| |
| 1992/0111 |
| |
| 1992/0508 |
| |
| 1990/1212 |
| |
| 1993/0501 |
| |
| 1990/1212 |
| |
| 1993/0501 |
| |
| 1990/1212 |
| |
| 1991/0926 | ||
| 1993/0501 |
| |
| 1990/1212 |
| |
| 1993/0501 |
| |
| 1990/1212 |
| |
| 1993/0501 |
| |
| 1990/1212 |
| |