| plan 9 kernel history: overview | file list | diff list |
1990/0312/gnot/fault.c (diff list | history)
| 1990/03091/sys/src/9/gnot/fault.c:83,88 – 1990/0312/sys/src/9/gnot/fault.c:83,89 (short | long | prev | next) | ||
| 1990/03091 | read = (f->ssw&READ) && !(f->ssw&RM); else read = f->ssw&(FB|FC); | |
| 1990/0312 | /* print("fault pc=%lux addr=%lux read %d\n", ur->pc, badvaddr, read); /**/ | |
| 1990/03091 | s = seg(u->p, addr); if(s == 0){ | |
| 1990/03091/sys/src/9/gnot/fault.c:272,280 – 1990/0312/sys/src/9/gnot/fault.c:273,282 | ||
| 1990/03091 | Seg *s; if((long)len < 0) | |
| 1990/0312 | goto Err; | |
| 1990/03091 | s = seg(u->p, addr); if(s==0 || addr+len>s->maxva || (write && (s->o->flag&OWRPERM)==0)){ | |
| 1990/0312 | Err: | |
| 1990/03091 | pprint("invalid address in sys call pc %lux sp %lux\n", ((Ureg*)UREGADDR)->pc, ((Ureg*)UREGADDR)->sp); postnote(u->p, 1, "bad address", NDebug); error(0, Ebadarg); | |