| plan 9 kernel history: overview | file list | diff list |
1998/0512/pc/trap.c (diff list | history)
| 1998/0401/sys/src/9/pc/trap.c:140,145 – 1998/0512/sys/src/9/pc/trap.c:140,153 (short | long | prev | next) | ||
|
Debugging: check for stack overflow. Bug fix: don't schedule if active.exiting.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1997/0327 | up->dbgreg = ureg; | |
| 1997/1101 | } | |
| 1991/1112 | ||
| 1998/0512 | { ulong x, y; x = (ulong)&(m->stack[512]); y = (ulong)&mach; if(y < x) panic("trap: kstack %lux %lux", m->stack, y); } | |
| 1997/0327 | v = ureg->trap; if(ctl = irqctl[v]){ | |
| 1997/1101 | if(ctl->isintr){ | |
| 1998/0401/sys/src/9/pc/trap.c:158,165 – 1998/0512/sys/src/9/pc/trap.c:166,175 | ||
| 1998/0401 | /* preemptive scheduling */ if(ctl->isintr && v != VectorTIMER && v != VectorCLOCK) | |
| 1998/0512 | if(up && up->state == Running) if(anyhigher()) if(!active.exiting) sched(); | |
| 1991/0731 | } | |
| 1997/0327 | else if(v <= 16 && user){ spllo(); | |