From 6ff3b06fdbfaf75221bc599755a9c8380508dc0d Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 27 Jul 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-07-27 --- port/fault.c | 29 +++++++++++++++++++++++++++++ port/portdat.h | 3 ++- port/qio.c | 1 - port/sysproc.c | 3 +-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/port/fault.c b/port/fault.c index 747604620ec8f50ab47dfbe27eb74787d63ff93a..f7f3e17cc17409f230b2d4e03d93c1915a44cc49 100644 --- a/port/fault.c +++ b/port/fault.c @@ -7,6 +7,35 @@ void faulterror(char*); +ulong +getpte(ulong addr) +{ + Pte **p, *etp; + Segment *s; + Page **pg; + ulong soff; + + s = seg(up, addr, 1); + if(s == 0) + return -1; + + addr &= ~(BY2PG-1); + soff = addr-s->base; + p = &s->map[soff/PTEMAPMEM]; + if(*p == 0) { + qunlock(&s->lk); + return -1; + } + etp = *p; + pg = &etp->pages[(soff&(PTEMAPMEM-1))/BY2PG]; + if(*pg == 0) { + qunlock(&s->lk); + return -1; + } + qunlock(&s->lk); + return (*pg)->pa; +} + int fault(ulong addr, int read) { diff --git a/port/portdat.h b/port/portdat.h index ebd998d7f63ef666f089e78720182fd42f58ea73..b60e486a8cf35c3ed8d9e6d41e55a27edc4e082d 100644 --- a/port/portdat.h +++ b/port/portdat.h @@ -599,7 +599,8 @@ struct Proc void *dbgreg; /* User registers for devproc */ ulong svstatus; ulong svr1; - +int entpc; +int entr31; /* * machine specific MMU */ diff --git a/port/qio.c b/port/qio.c index f7a366f589f2b1833fb889d9f1dbcef2da959745..1dc7481033a81366d158d24c9a00789e9d0a051a 100644 --- a/port/qio.c +++ b/port/qio.c @@ -407,7 +407,6 @@ qread(Queue *q, void *vp, int len) if(q->state & Qclosed){ unlock(q); splx(x); -print("Qclosed %lux\n", q); return 0; } diff --git a/port/sysproc.c b/port/sysproc.c index f8bcc3ae3af654b1d3a1751e3f109e0f9424bc71..aeb43a1c3258a53e0e8693458b25285ee6437940 100644 --- a/port/sysproc.c +++ b/port/sysproc.c @@ -294,7 +294,7 @@ sysexec(ulong *arg) if((ssize+4) & 7) ssize += 4; spage = (ssize+(BY2PG-1)) >> PGSHIFT; -print("ssize %d spage %lux\n", ssize, spage); + /* * Build the stack segment, putting it in kernel virtual for the moment */ @@ -319,7 +319,6 @@ print("ssize %d spage %lux\n", ssize, spage); argp = (char**)arg[1]; } *argv++ = charp + (USTKTOP-TSTKTOP); -print("arg[%d] %s\n", i, *argp); n = strlen(*argp) + 1; memmove(charp, *argp++, n); charp += n;