| plan 9 kernel history: overview | file list | diff list |
2000/0611/port/rdb.c (diff list | history)
| 2000/0611/sys/src/9/port/rdb.c:1,110 – 2001/0527/sys/src/9/port/rdb.c:1,109 (short | long | prev | next) | ||
|
Add /dev/kprint.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1999/0820 | #include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "io.h" #include "ureg.h" | |
| 2000/0611 | addr(char *s, Ureg *ureg, char **p) | |
| 1999/0820 | { ulong a; | |
| 2000/0611 | a = strtoul(s, p, 16); | |
| 1999/0820 | if(a < sizeof(Ureg)) return ((uchar*)ureg)+a; return (void*)a; } static void talkrdb(Ureg *ureg) { uchar *a; | |
| 2000/0611 | char *p; | |
| 1999/0820 | char *req; | |
| 2001/0527 | serialoq = nil; // turn off serial console kprintoq = nil; // turn off /dev/kprint if active | |
| 1999/1031 | // scrprint("Plan 9 debugger\n"); | |
| 1999/0820 | iprint("Edebugger reset\n"); for(;;){ req = getline(); switch(*req){ case 'r': | |
| 2000/0611 | a = addr(req+1, ureg, nil); | |
| 1999/0820 | DBG("read %p\n", a); iprint("R%.8lux %.2ux %.2ux %.2ux %.2ux\n", strtoul(req+1, 0, 16), a[0], a[1], a[2], a[3]); | |
| 2000/0611 | break; case 'w': a = addr(req+1, ureg, &p); *(ulong*)a = strtoul(p, nil, 16); iprint("W\n"); | |
| 1999/0820 | break; /* * case Tmput: n = min[4]; if(n > 4){ mesg(Rerr, Ecount); break; } a = addr(min+0); scrprint("mput %.8lux\n", a); memmove(a, min+5, n); mesg(Rmput, mout); break; * */ default: DBG("unknown %c\n", *req); iprint("Eunknown message\n"); break; } } } void rdb(void) { splhi(); iprint("rdb..."); callwithureg(talkrdb); } | |