| plan 9 kernel history: overview | file list | diff list |
1991/0110/ss/trap.c (diff list | history)
| 1991/0109/sys/src/9/ss/trap.c:58,63 – 1991/0110/sys/src/9/ss/trap.c:58,67 (short | long | prev | next) | ||
| 1990/1227 | ulong tbr; | |
| 1990/1223 | ||
| 1990/1227 | tbr = (ur->tbr&0xFFF)>>4; | |
| 1991/0110 | if(tbr == 16+15){ /* interrupt 14: counter 1 */ faultasync(ur); return; } | |
| 1990/1231 | if(tbr == 16+14){ /* interrupt 14: counter 1 */ | |
| 1990/1227 | clock(ur); | |
| 1990/1231 | return; | |
| 1991/0109/sys/src/9/ss/trap.c:77,87 – 1991/0110/sys/src/9/ss/trap.c:81,88 | ||
| 1990/1223 | u->p->pc = ur->pc; /* BUG */ if(user){ | |
| 1990/1227 | print("user trap: %s pc=0x%lux\n", excname(tbr), ur->pc); | |
| 1990/1226 |
| |
| 1990/1227 | sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(tbr)); | |
| 1991/0109 |
| |
| 1990/1223 | postnote(u->p, 1, buf, NDebug); | |
| 1991/0109 |
| |
| 1990/1223 | }else{ | |
| 1990/1227 | print("kernel trap: %s pc=0x%lux\n", excname(tbr), ur->pc); | |
| 1990/1223 | dumpregs(ur); | |
| 1991/0109/sys/src/9/ss/trap.c:169,175 – 1991/0110/sys/src/9/ss/trap.c:170,175 | ||
| 1990/1223 | if(u->note[0].flag == NDebug) pprint("suicide: %s\n", u->note[0].msg); Die: | |
| 1991/0109 |
| |
| 1990/1223 | unlock(&u->p->debug); pexit(u->note[0].msg, u->note[0].flag!=NDebug); } | |