| plan 9 kernel history: overview | file list | diff list |
1991/0614/ss/trap.c (diff list | history)
| 1991/0604/sys/src/9/ss/trap.c:309,314 – 1991/0614/sys/src/9/ss/trap.c:309,315 (short | long | prev | next) | ||
| 1990/1223 | long syscall(Ureg *aur) { | |
| 1991/0614 | int i; | |
| 1990/1223 | long ret; ulong sp; | |
| 1990/1226 | ulong r7; | |
| 1991/0604/sys/src/9/ss/trap.c:349,361 – 1991/0614/sys/src/9/ss/trap.c:350,368 | ||
| 1990/1223 | msg = "sys: odd stack"; goto Bad; } | |
| 1991/0614 | if(sp<(USTKTOP-BY2PG) || sp>(USTKTOP-(2+MAXSYSARG)*BY2WD)) validaddr(sp, ((2+MAXSYSARG)*BY2WD), 0); | |
| 1990/1226 | ret = (*systab[r7])((ulong*)(sp+2*BY2WD)); | |
| 1991/0614 | poperror(); | |
| 1990/1223 | } | |
| 1990/1226 | ur->pc += 4; ur->npc = ur->pc+4; | |
| 1990/1223 |
| |
| 1991/0614 | if(u->nerrlab){ print("unbalanced error stack: %d extra\n", u->nerrlab); for(i = 0; i < NERR; i++) print("sp=%lux pc=%lux\n", u->errlab[i].sp, u->errlab[i].pc); panic("bad rob"); } | |
| 1990/1223 | u->p->insyscall = 0; | |
| 1990/1226 | if(r7 == NOTED) /* ugly hack */ | |
| 1990/1223 | noted(&aur); /* doesn't return */ | |