| plan 9 kernel history: overview | file list | diff list |
1992/0704/ss/faultsparc.c (diff list | history)
| 1992/0321/sys/src/9/ss/faultsparc.c:6,11 – 1992/0704/sys/src/9/ss/faultsparc.c:6,18 (short | long | prev | next) | ||
| 1990/1223 | #include "ureg.h" | |
| 1992/0111 | #include "../port/error.h" | |
| 1990/1223 | ||
| 1992/0704 | enum { SE_WRITE = 0x8000, SE_INV = 0x0080, SE_PROT = 0x0040, }; | |
| 1990/1223 | void | |
| 1990/1226 | faultsparc(Ureg *ur) | |
| 1990/1223 | { | |
| 1992/0321/sys/src/9/ss/faultsparc.c:12,18 – 1992/0704/sys/src/9/ss/faultsparc.c:19,25 | ||
| 1990/1223 | ulong addr, badvaddr; | |
| 1991/0717 | char buf[ERRLEN]; | |
| 1991/01151 | int user, read; | |
| 1990/1226 |
| |
| 1992/0704 | ulong tbr, ser; | |
| 1990/1223 | ||
| 1990/1227 | tbr = (ur->tbr&0xFFF)>>4; | |
| 1990/1226 | addr = ur->pc; /* assume instr. exception */ | |
| 1992/0321/sys/src/9/ss/faultsparc.c:22,28 – 1992/0704/sys/src/9/ss/faultsparc.c:29,36 | ||
| 1990/1231 | * According to the book, this isn't good enough. We'll see. */ | |
| 1990/1226 | addr = getw2(SEVAR); | |
| 1990/1231 |
| |
| 1992/0704 | ser = getw2(SER); if(ser&(SE_WRITE|SE_PROT)) | |
| 1990/1231 | read = 0; | |
| 1990/1226 | } spllo(); | |