| plan 9 kernel history: overview | file list | diff list |
1991/1111/ss/trap.c (diff list | history)
| 1991/1108/sys/src/9/ss/trap.c:121,126 – 1991/1111/sys/src/9/ss/trap.c:121,127 (short | long | prev | next) | ||
| 1991/01151 | default: break; } | |
| 1991/1111 | Error: | |
| 1991/01151 | if(user){ spllo(); sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(tbr)); | |
| 1991/1108/sys/src/9/ss/trap.c:128,134 – 1991/1111/sys/src/9/ss/trap.c:129,134 | ||
| 1991/01151 | sprint(buf+strlen(buf), " FSR %lux", u->fpsave.fsr); postnote(u->p, 1, buf, NDebug); }else{ | |
| 1991/1108/sys/src/9/ss/trap.c:136,145 – 1991/1111/sys/src/9/ss/trap.c:136,142 | ||
| 1990/1223 | } | |
| 1991/01151 | Return: | |
| 1991/1108 | if(user) { | |
| 1991/1111 | notify(ur); | |
| 1991/1108 | if(u->p->fpstate == FPinactive) { restfpregs(&u->fpsave); u->p->fpstate = FPactive; | |
| 1991/1108/sys/src/9/ss/trap.c:219,224 – 1991/1111/sys/src/9/ss/trap.c:216,225 | ||
| 1990/1223 | { ulong sp; | |
| 1991/1111 | if(u->p->procctl) procctl(u->p); if(u->nnote == 0) return; | |
| 1990/1223 | lock(&u->p->debug); | |
| 1991/0727 | u->p->notepending = 0; | |
| 1991/0112 | if(u->nnote==0){ | |
| 1991/1108/sys/src/9/ss/trap.c:345,353 – 1991/1111/sys/src/9/ss/trap.c:346,351 | ||
| 1990/1223 | } spllo(); | |
| 1991/1108 |
| |
| 1990/1226 | r7 = ur->r7; | |
| 1990/1223 | sp = ur->usp; | |
| 1991/1108/sys/src/9/ss/trap.c:382,388 – 1991/1111/sys/src/9/ss/trap.c:380,386 | ||
| 1991/0926 | u->p->psstate = 0; | |
| 1990/1226 | if(r7 == NOTED) /* ugly hack */ | |
| 1991/0717 | noted(&aur, *(ulong*)(sp+1*BY2WD)); /* doesn't return */ | |
| 1991/0724 |
| |
| 1991/1111 | if(u->p->procctl || (u->nnote && r7!=FORK)){ | |
| 1990/1226 | ur->r7 = ret; | |
| 1990/1223 | notify(ur); } | |
| 1991/1108/sys/src/9/ss/trap.c:393,396 – 1991/1111/sys/src/9/ss/trap.c:391,403 | ||
| 1990/1226 | execpc(ulong entry) { ((Ureg*)UREGADDR)->pc = entry - 4; /* syscall advances it */ | |
| 1991/1111 | } /* This routine must save the values of registers the user is not permitted * to write from devproc and restore them before returning */ void setregisters(Ureg *xp, char *pureg, char *uva, int n) { print("setregisters: no idea\n"); | |
| 1990/1223 | } | |