From a6a793306069c7f631864834e3e8fc58b5e4a344 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 26 Nov 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-11-26 --- power/debugger.c | 34 +++++++++++++++++----------------- power/faultmips.c | 4 ++-- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/power/debugger.c b/power/debugger.c index 923dcd836fe57d47bdd64d9c0b04062d31ea76c2..6e944d6160115ef17b4a1a0ba752812497b8c48d 100644 --- a/power/debugger.c +++ b/power/debugger.c @@ -84,12 +84,10 @@ printlog(char *cpu) p = s->buf; while(p != end){ c = *p & 0xff; - if(c >= ' ' && c <= '~'){ - if(c == '\r' || c == '\n') - dprintq.puts(&dprintq, "\r\n", 2); - else - dprintq.puts(&dprintq, p, 1); - } + if(c == '\r' || c == '\n') + dprintq.puts(&dprintq, "\r\n", 2); + else if(c >= ' ' && c <= '~') + dprintq.puts(&dprintq, p, 1); p++; if(p >= &s->buf[sizeof(s->buf)]) p = s->buf; @@ -107,7 +105,7 @@ printhex(char *start, char *len) dprint("! h - hex display\r\n"); return; } - n = strtoul(start, 0, 0); + n = strtoul(start, 0, 16); if((n & KZERO) == 0) return; p = (ulong *)n; @@ -120,8 +118,9 @@ printhex(char *start, char *len) while(n > 0){ dprint("%lux/", p); for(i = 0; i < 8 && n > 0; i++, n--) - dprint(" %lux", p[i]); + dprint(" %8.8lux", p[i]); dprint("\r\n"); + p += 8; } } @@ -137,15 +136,14 @@ printinfo(void) for(i = 0; i < 4; i++){ if((active.machs&(1<proc); dprint("mach[%d]->proc/ %lux\r\n", i, l); dprint("mach[%d]->splpc/ %lux\r\n", i, mp->splpc); - if((l & 0xf0000000) == KZERO){ + if(l & KZERO){ p = (Proc*)l; l = (ulong)(p->upage); - if((l & 0xf0000000) == KZERO){ + if(l & KZERO){ pg = (Page*)l; l = pg->pa; dprint("mach[%d]->proc->upage->pa/ %lux\r\n", i, l); @@ -163,11 +161,6 @@ debugger(void *arg) USED(arg); - /* - * grab a port for a console - */ - duartspecial(3, &dprintq, &dkbdq, 9600); - /* * sched() until we are on processor 1 */ @@ -179,6 +172,13 @@ debugger(void *arg) sched(); } + /* + * grab a port for a console + */ + initq(&dprintq); + initq(&dkbdq); + duartspecial(3, &dprintq, &dkbdq, 9600); + /* * take processor and process out of active groups */ diff --git a/power/faultmips.c b/power/faultmips.c index 49327ba4d89b6fdc3673623db714446bed53b5ea..6f73f71d84d07a3a60771434c72b94249f7f74e2 100644 --- a/power/faultmips.c +++ b/power/faultmips.c @@ -21,7 +21,7 @@ faultmips(Ureg *ur, int user, int code) LEDON(LEDfault); addr = ur->badvaddr; - if(addr & KZERO) + if((addr & KZERO) && (0xffff0000 & addr) != USERADDR) LEDON(LEDkfault); addr &= ~(BY2PG-1); read = !(code==CTLBM || code==CTLBS); @@ -39,7 +39,7 @@ faultmips(Ureg *ur, int user, int code) dumpregs(ur); panic("fault"); } - LEDOFF(LEDfault); + LEDOFF(LEDfault|LEDkfault); } /*