From 067cf9403043dfb6d921ea1bc65ce4a3586fb0d6 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Mon, 20 Jan 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-01-20 --- gnot/bbmalloc.c | 5 ++--- gnot/trap.c | 6 ++++++ gnot/ureg.h | 25 ------------------------- pc/trap.c | 6 ++++++ port/fault.c | 3 +-- port/page.c | 1 - port/portfns.h | 1 + port/proc.c | 1 - port/segment.c | 1 - port/swap.c | 1 - port/sysproc.c | 1 - power/main.c | 1 - power/trap.c | 6 ++++++ power/ureg.h | 44 -------------------------------------------- ss/main.c | 1 - ss/screen.c | 1 - ss/trap.c | 6 ++++++ 17 files changed, 28 insertions(+), 82 deletions(-) delete mode 100644 gnot/ureg.h delete mode 100644 power/ureg.h diff --git a/gnot/bbmalloc.c b/gnot/bbmalloc.c index 07be0b53cd669fd4d67b9787db2a73dfe4785644..d6b62fea4d5da86694148948fa670fdb26f8a5bb 100644 --- a/gnot/bbmalloc.c +++ b/gnot/bbmalloc.c @@ -63,17 +63,16 @@ bbfree(void *p, int n) splx(s); } -void * +void flushvirtpage(void *p) { flushcpucache(); } -void * +void bbdflush(void *p, int n) { flushcpucache(); - return (void *)(((ulong)p)); } int diff --git a/gnot/trap.c b/gnot/trap.c index 9e8b8645dd2a2ee35ef0097a0fc5672406cef85b..2a5d2d747d93a0ad8ee600f086c3d79031205af9 100644 --- a/gnot/trap.c +++ b/gnot/trap.c @@ -358,6 +358,12 @@ execregs(ulong entry, ulong ssize, ulong nargs) return USTKTOP-BY2WD; /* address of user-level clock */ } +ulong +userpc(void) +{ + return ((Ureg*)UREGADDR)->pc; +} + /* This routine must save the values of registers the user is not permitted to write * from devproc and the restore the saved values before returning */ diff --git a/gnot/ureg.h b/gnot/ureg.h deleted file mode 100644 index 737bac7daf7b318b4d32cbaa5e2dd3070ecf5f7a..0000000000000000000000000000000000000000 --- a/gnot/ureg.h +++ /dev/null @@ -1,25 +0,0 @@ -struct Ureg -{ - ulong r0; - ulong r1; - ulong r2; - ulong r3; - ulong r4; - ulong r5; - ulong r6; - ulong r7; - ulong a0; - ulong a1; - ulong a2; - ulong a3; - ulong a4; - ulong a5; - ulong a6; - ulong sp; - ulong usp; - ulong magic; /* for db to find bottom of ureg */ - ushort sr; - ulong pc; - ushort vo; - uchar microstate[UREGVARSZ]; /* variable-sized portion */ -}; diff --git a/pc/trap.c b/pc/trap.c index 8b61f46910dd9b0693b4be3d3439a2e6a55352b3..891baef9a9797e6946e01c5c0bb6f6a822ac573c 100644 --- a/pc/trap.c +++ b/pc/trap.c @@ -288,6 +288,12 @@ execregs(ulong entry, ulong ssize, ulong nargs) return USTKTOP-BY2WD; /* address of user-level clock */ } +ulong +userpc(void) +{ + return ((Ureg*)UREGADDR)->pc; +} + /* * system calls */ diff --git a/port/fault.c b/port/fault.c index 2f2ecd3932341d578e1613fc75849cc9fe09e5b5..75fbb02fef2d36fef75c8e1ced23768c5e4ac313 100644 --- a/port/fault.c +++ b/port/fault.c @@ -3,7 +3,6 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "ureg.h" #include "../port/error.h" #define DPRINT @@ -280,7 +279,7 @@ validaddr(ulong addr, ulong len, int write) } } - pprint("invalid address 0x%lux in sys call pc=0x%lux", addr, ((Ureg*)UREGADDR)->pc); + pprint("invalid address 0x%lux in sys call pc=0x%lux", addr, userpc()); postnote(u->p, 1, "sys: bad address", NDebug); error(Ebadarg); } diff --git a/port/page.c b/port/page.c index cd9d781591364d0e285e823d8e604906e9c2a347..869957593b1d551f63dd1e4ca7e02058409e7de0 100644 --- a/port/page.c +++ b/port/page.c @@ -3,7 +3,6 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "ureg.h" #include "../port/error.h" #define PGHFUN(x, y) (((ulong)x^(ulong)y)%PGHSIZE) diff --git a/port/portfns.h b/port/portfns.h index c6f0ad35e8fe2803e2f82608f99302d7d236dcff..5471c2598712fd4b1c78087486005d9247995127 100644 --- a/port/portfns.h +++ b/port/portfns.h @@ -240,6 +240,7 @@ void unlock(Lock*); void unlockpage(Page*); long unicode(uchar*); void userinit(void); +ulong userpc(void); void validaddr(ulong, ulong, int); void* vmemchr(void*, int, int); void wakeme(Alarm*); diff --git a/port/proc.c b/port/proc.c index dc5200cff9761b86ea6f27aaec81cedd29297fe1..1be929e40f261b562ee0a8834e4ac668f5cc064d 100644 --- a/port/proc.c +++ b/port/proc.c @@ -640,7 +640,6 @@ proctab(int i) return &procalloc.arena[i]; } -#include void procdump(void) { diff --git a/port/segment.c b/port/segment.c index 4ec6854db68d33c7e9c009e51a8137cfcc6d9321..e7459d9f1fed502f4679556d3bd2fe32eb810bfe 100644 --- a/port/segment.c +++ b/port/segment.c @@ -3,7 +3,6 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "ureg.h" #include "../port/error.h" Page *lkpage(ulong addr); diff --git a/port/swap.c b/port/swap.c index 5e93539b3c25d813ccb4d2410163e662e6d8f7d2..2660336285d4ed040ead6b2f59d1e1e9488ec307 100644 --- a/port/swap.c +++ b/port/swap.c @@ -3,7 +3,6 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "ureg.h" #include "../port/error.h" /* Predeclaration */ diff --git a/port/sysproc.c b/port/sysproc.c index 0fc24ed95a2e81bee3c3c6b1dc12da36bd6bfa40..4f18acea231884b568667eefd36c06221e6b647c 100644 --- a/port/sysproc.c +++ b/port/sysproc.c @@ -3,7 +3,6 @@ #include "mem.h" #include "dat.h" #include "fns.h" -#include "ureg.h" #include "../port/error.h" #include diff --git a/power/main.c b/power/main.c index d22b5dd1e4e8b02bdbd72394dcd93d4c884d54b9..d3ad8da787aa94f3b156db68da1f1edb79c7c304 100644 --- a/power/main.c +++ b/power/main.c @@ -4,7 +4,6 @@ #include "dat.h" #include "fns.h" #include "io.h" -#include "ureg.h" #include "init.h" /* diff --git a/power/trap.c b/power/trap.c index 0fd4a5cb64ca09adceff1ab0f615ab983194c6b8..7b28dcdad94a88f80e3343072f38684a212986c3 100644 --- a/power/trap.c +++ b/power/trap.c @@ -564,6 +564,12 @@ execregs(ulong entry, ulong ssize, ulong nargs) return USTKTOP-BY2WD; /* address of user-level clock */ } +ulong +userpc(void) +{ + return ((Ureg*)UREGADDR)->pc; +} + void novme(int v) { diff --git a/power/ureg.h b/power/ureg.h deleted file mode 100644 index 32cbfb3fc85f67d4204766ce48ca339d2d651916..0000000000000000000000000000000000000000 --- a/power/ureg.h +++ /dev/null @@ -1,44 +0,0 @@ -struct Ureg -{ - ulong status; - ulong pc; - union{ - ulong sp; /* r29 */ - ulong usp; /* r29 */ - }; - ulong cause; - ulong badvaddr; - ulong tlbvirt; - ulong hi; - ulong lo; - ulong r31; - ulong r30; - ulong r28; - ulong r27; /* unused */ - ulong r26; /* unused */ - ulong r25; - ulong r24; - ulong r23; - ulong r22; - ulong r21; - ulong r20; - ulong r19; - ulong r18; - ulong r17; - ulong r16; - ulong r15; - ulong r14; - ulong r13; - ulong r12; - ulong r11; - ulong r10; - ulong r9; - ulong r8; - ulong r7; - ulong r6; - ulong r5; - ulong r4; - ulong r3; - ulong r2; - ulong r1; -}; diff --git a/ss/main.c b/ss/main.c index ffd172585b2df0a0df6d8ad5583d50fa00769718..4eab132ca534b4788e4da3bb84f669ffd828066f 100644 --- a/ss/main.c +++ b/ss/main.c @@ -4,7 +4,6 @@ #include "dat.h" #include "fns.h" #include "io.h" -#include "ureg.h" #include "init.h" #include diff --git a/ss/screen.c b/ss/screen.c index f4a719f415306514a740ba2212a233969bd1fa4f..a5401bebbb65c031bb7287e180b619e7b94fa480 100644 --- a/ss/screen.c +++ b/ss/screen.c @@ -4,7 +4,6 @@ #include "dat.h" #include "fns.h" #include "io.h" -#include "ureg.h" #include "../port/error.h" #include diff --git a/ss/trap.c b/ss/trap.c index 0ba27d0a386eef7f47073113b1bd1d438f8e1eae..afcbc181594e1278e3a040fac46fd59cc6a3af0f 100644 --- a/ss/trap.c +++ b/ss/trap.c @@ -426,6 +426,12 @@ execregs(ulong entry, ulong ssize, ulong nargs) return USTKTOP-BY2WD; /* address of user-level clock */ } +ulong +userpc(void) +{ + return ((Ureg*)UREGADDR)->pc; +} + /* This routine must save the values of registers the user is not permitted to write * from devproc and the restore the saved values before returning */