From 7a0a7959e0151b3a59106f373290e85213c09350 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 22 Jul 1990 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1990-07-22 --- gnot/main.c | 2 +- gnot/proc.c | 1 + port/devbit.c | 32 ++++ port/devdk.c | 9 +- port/devlance.c | 2 +- port/proc.c | 12 +- port/sturp.c | 2 +- power/boot.c | 4 +- power/boot.h | 378 ++++++++++++++++++++++++------------------------ power/devhs.c | 2 +- power/errno.h | 2 +- power/trap.c | 12 +- 12 files changed, 253 insertions(+), 205 deletions(-) diff --git a/gnot/main.c b/gnot/main.c index f8551ff819d1cbf6213db1dcf09e7d4932da5124..3f505b3a253c9f72ef9b5763ce1c127a9c469f49 100644 --- a/gnot/main.c +++ b/gnot/main.c @@ -306,7 +306,7 @@ confinit(void) conf.nmnthdr = 2*conf.nmntdev; conf.nstream = 64; conf.nqueue = 5 * conf.nstream; - conf.nblock = 12 * conf.nstream; + conf.nblock = 24 * conf.nstream; conf.nsrv = 32*mul; conf.nbitmap = 100*mul; conf.nbitbyte = 300*1024*mul; diff --git a/gnot/proc.c b/gnot/proc.c index fb06bdcd6b2a2ec3e7c89b6c68707e7c92c82755..eed82727919e996223972847a5452ceee822cd95 100644 --- a/gnot/proc.c +++ b/gnot/proc.c @@ -172,6 +172,7 @@ loop: p->nchild = 0; p->child = 0; p->exiting = 0; + p->fpstate = FPinit; memset(p->seg, 0, sizeof p->seg); lock(&pidalloc); p->pid = ++pidalloc.pid; diff --git a/port/devbit.c b/port/devbit.c index 382b4f7fe034311380dd05989081a54d3efefbcb..bd217e8f98912d5d0bacd94789bc2af8bba17f9e 100644 --- a/port/devbit.c +++ b/port/devbit.c @@ -755,6 +755,38 @@ bitwrite(Chan *c, void *va, long n) p += 22; break; + case 'p': + /* + * point + * + * 'p' 1 + * id 2 + * pt 8 + * value 1 + * code 2 + */ + if(m < 14) + error(0, Ebadblt); + v = GSHORT(p+1); + dst = &bit.map[v]; + if(v<0 || v>=conf.nbitmap || dst->ldepth<0) + error(0, Ebadbitmap); + off = 0; + if(v == 0) + off = 1; + pt1.x = GLONG(p+3); + pt1.y = GLONG(p+7); + t = p[11]; + v = GSHORT(p+12); + if(off && !isoff){ + cursoroff(1); + isoff = 1; + } + point(dst, pt1, t, v); + m -= 14; + p += 14; + break; + case 'r': /* * read diff --git a/port/devdk.c b/port/devdk.c index 88599861ed9b0178e491ba31402c32f01b3732c7..dd6c6ed75729bb518c81e1117e8df49b8879a204 100644 --- a/port/devdk.c +++ b/port/devdk.c @@ -456,6 +456,7 @@ dkmuxconfig(Dk *dp, Block *bp) */ dp->restart = 1; n = getfields((char *)bp->rptr, fields, 4, ' '); + strcpy(dp->name, "dk"); switch(n){ case 4: strncpy(dp->name, fields[3], sizeof(dp->name)); @@ -494,7 +495,7 @@ dkmuxconfig(Dk *dp, Block *bp) /* * start a process to deal with it */ - sprint(buf, "**csckproc%d**", dp->ncsc); + sprint(buf, "csckproc%d", dp->ncsc); kproc(buf, dkcsckproc, dp); poperror(); @@ -503,7 +504,7 @@ dkmuxconfig(Dk *dp, Block *bp) */ if(dktimeron == 0){ dktimeron = 1; - kproc("**dktimer**", dktimer, 0); + kproc("dktimer", dktimer, 0); } } @@ -592,8 +593,10 @@ dkattach(char *spec) Dk *dp; /* - * find a multiplexor with the same name + * find a multiplexor with the same name (default dk) */ + if(*spec == 0) + spec = "dk"; for(dp = dk; dp < &dk[Ndk]; dp++){ qlock(dp); if(dp->wq && strcmp(spec, dp->name)==0) { diff --git a/port/devlance.c b/port/devlance.c index c922333f9f4dad0eb87b88d8928563516621204b..16237308dd17798edf2d0bec492e1eb7582c16ee 100644 --- a/port/devlance.c +++ b/port/devlance.c @@ -589,7 +589,7 @@ lanceattach(char *spec) Chan *c; if(l.kstarted == 0){ - kproc("**lancekproc**", lancekproc, 0); + kproc("lancekproc", lancekproc, 0); l.kstarted = 1; lancestart(); } diff --git a/port/proc.c b/port/proc.c index aaeadff6b9560617bfe553d513c3eb0758f19b6a..a68f9eb1f4c72ce8f6b0c082a91ca4a6a7707f11 100644 --- a/port/proc.c +++ b/port/proc.c @@ -171,6 +171,7 @@ loop: p->nchild = 0; p->child = 0; p->exiting = 0; + p->fpstate = FPinit; memset(p->pidonmach, 0, sizeof p->pidonmach); memset(p->seg, 0, sizeof p->seg); lock(&pidalloc); @@ -577,6 +578,7 @@ kproc(char *name, void (*func)(void *), void *arg) int lastvar; /* used to compute stack address */ User *up; KMap *k; + static Pgrp *kpgrp; /* * Kernel stack @@ -614,12 +616,16 @@ kproc(char *name, void (*func)(void *), void *arg) p->mach = m; m->proc = p; spllo(); - strncpy(p->text, name, sizeof p->text); (*func)(arg); pexit(0, 1); } - p->pgrp = u->p->pgrp; - incref(p->pgrp); + if(kpgrp == 0){ + kpgrp = newpgrp(); + strcpy(kpgrp->user, "bootes"); + } + p->pgrp = kpgrp; + incref(kpgrp); + sprint(p->text, "%s.%.6s", name, u->p->pgrp->user); p->nchild = 0; p->parent = 0; memset(p->time, 0, sizeof(p->time)); diff --git a/port/sturp.c b/port/sturp.c index 8d923bb4fa1c12cb5ee05ef7c6d8dd715fa5422b..72e3d379e3487590ff304db3ace5d8e1d6ab9c0e 100644 --- a/port/sturp.c +++ b/port/sturp.c @@ -162,7 +162,7 @@ urpopen(Queue *q, Stream *s) */ if(up->kstarted == 0){ up->kstarted = 1; - sprint(name, "**urp%d**", up - urp); + sprint(name, "urp%d", up - urp); kproc(name, urpkproc, up); } } diff --git a/power/boot.c b/power/boot.c index 2a7bcaa8b850a8217c32f728637033020bf30eaa..58294ef3c08fdf073edf9acc0c9efd78e4657a55 100644 --- a/power/boot.c +++ b/power/boot.c @@ -159,12 +159,12 @@ boot(int ask) */ fd = open("#nnonet/2/data", 2); if(fd < 0) { - prerror("opening #n/2/data"); + prerror("opening #nnonet/2/data"); return; } cfd = open("#nnonet/2/ctl", 2); if(cfd < 0){ - prerror("opening #n/2/ctl"); + prerror("opening #nnonet/2/ctl"); return; } if(write(cfd, scmd, strlen(scmd))<0){ diff --git a/power/boot.h b/power/boot.h index 2167126d7aba174cd955ec7668de649723a6a6fd..56c35e82857d9891364be6a282d41fe7727a241c 100644 --- a/power/boot.h +++ b/power/boot.h @@ -1,7 +1,7 @@ ulong bootcode[]={ 0x000000407, 0x0000041f0, - 0x0000005d0, + 0x0000005d8, 0x0000010d0, 0x000000000, 0x000001020, @@ -209,17 +209,17 @@ ulong bootcode[]={ 0x000000027, 0x000400008, 0x023bd0028, - 0x023c1836c, + 0x023c18376, 0x00c00078c, 0x0afa10004, - 0x0a3c09656, - 0x023c29656, + 0x0a3c0965e, + 0x023c2965e, 0x0afa20004, - 0x023c28656, + 0x023c2865e, 0x00c000870, 0x0afa20008, 0x08fc38052, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x0afa10024, @@ -229,11 +229,11 @@ ulong bootcode[]={ 0x000000027, 0x01026000c, 0x000000027, - 0x023c18373, + 0x023c1837d, 0x0afa10004, 0x00c00078c, 0x0afa60008, - 0x023c1837b, + 0x023c18385, 0x00c000699, 0x0afa10004, 0x08fa20000, @@ -241,7 +241,7 @@ ulong bootcode[]={ 0x000400008, 0x023bd0028, 0x08fc38052, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x020021000, @@ -249,71 +249,71 @@ ulong bootcode[]={ 0x0afa2000c, 0x01c200008, 0x000000027, - 0x023c18385, + 0x023c1838f, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x023c28656, + 0x023c2865e, 0x0afa20004, - 0x023c29656, + 0x023c2965e, 0x0afa20008, 0x0afa10024, 0x00c000c0d, 0x0afa1000c, 0x014200019, 0x000000027, - 0x023c1838e, + 0x023c18398, 0x0afa10004, 0x08fa20024, 0x000000027, 0x0afa20008, - 0x083c28656, + 0x083c2865e, 0x000000027, 0x0afa2000c, - 0x083c28657, + 0x083c2865f, 0x000000027, 0x0afa20010, - 0x083c28658, + 0x083c28660, 0x000000027, 0x0afa20014, - 0x083c28659, + 0x083c28661, 0x00c00078c, 0x0afa20018, - 0x023c183b1, + 0x023c183bb, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x083c29656, + 0x083c2965e, 0x020030001, 0x010430008, 0x000000027, - 0x023c183bc, + 0x023c183c6, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x023c183c5, + 0x023c183cf, 0x00c00078c, 0x0afa10004, 0x020010002, - 0x0a3c19656, + 0x0a3c1965e, 0x020020076, - 0x0a3c29662, - 0x023c29656, + 0x0a3c2966a, + 0x023c2965e, 0x0afa20004, - 0x023c28656, + 0x023c2865e, 0x00c000870, 0x0afa20008, 0x08fc38052, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x0afa10024, @@ -323,7 +323,7 @@ ulong bootcode[]={ 0x000000027, 0x010230008, 0x000000027, - 0x023c183d0, + 0x023c183da, 0x00c000699, 0x0afa10004, 0x08fa20000, @@ -331,7 +331,7 @@ ulong bootcode[]={ 0x000400008, 0x023bd0028, 0x08fc38052, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x020021000, @@ -339,68 +339,68 @@ ulong bootcode[]={ 0x0afa2000c, 0x01c200008, 0x000000027, - 0x023c183de, + 0x023c183e8, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x023c28656, + 0x023c2865e, 0x0afa20004, - 0x023c29656, + 0x023c2965e, 0x0afa20008, 0x00c000c0d, 0x0afa1000c, 0x014200008, 0x000000027, - 0x023c183eb, + 0x023c183f5, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x083c29656, + 0x083c2965e, 0x020030003, 0x010430008, 0x000000027, - 0x023c183fa, + 0x023c18404, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x087c2965a, + 0x087c29662, 0x000000027, 0x01040000d, 0x000000027, - 0x023c18407, + 0x023c18411, 0x0afa10004, - 0x087c2965a, + 0x087c29662, 0x00c00078c, 0x0afa20008, - 0x023c18411, + 0x023c1841b, 0x00c000699, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x023c1841e, + 0x023c18428, 0x00c00078c, 0x0afa10004, - 0x023c18656, + 0x023c1865e, 0x0afa10004, - 0x023c18426, + 0x023c18430, 0x0afa10008, 0x08fa2001c, 0x000000027, 0x08c430008, 0x00c0007d6, 0x0afa3000c, - 0x023c28656, + 0x023c2865e, 0x0afa20004, 0x020020001, 0x0afa20008, @@ -409,26 +409,26 @@ ulong bootcode[]={ 0x0afa2000c, 0x004210004, 0x0afa10020, - 0x023c1842c, + 0x023c18436, 0x00c0006ac, 0x0afa10004, - 0x023c18656, + 0x023c1865e, 0x0afa10004, - 0x023c18433, + 0x023c1843d, 0x0afa10008, 0x08fc28052, 0x00c0007d6, 0x0afa2000c, - 0x023c28656, + 0x023c2865e, 0x00c000858, 0x0afa20004, 0x0afa10018, - 0x023c38656, + 0x023c3865e, 0x00c000858, 0x0afa30004, 0x0afa10014, 0x08fa30020, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x08fa30014, @@ -438,13 +438,13 @@ ulong bootcode[]={ 0x000000027, 0x010230004, 0x000000027, - 0x023c18436, + 0x023c18440, 0x00c0006ac, 0x0afa10004, 0x08fa20020, 0x00c000ebd, 0x0afa20004, - 0x023c2843c, + 0x023c28446, 0x0afa20004, 0x020020001, 0x0afa20008, @@ -453,26 +453,26 @@ ulong bootcode[]={ 0x0afa2000c, 0x004210004, 0x0afa10020, - 0x023c18444, + 0x023c1844e, 0x00c0006ac, 0x0afa10004, - 0x023c18656, + 0x023c1865e, 0x0afa10004, - 0x023c1844b, + 0x023c18455, 0x0afa10008, 0x08fc28052, 0x00c0007d6, 0x0afa2000c, - 0x023c28656, + 0x023c2865e, 0x00c000858, 0x0afa20004, 0x0afa10018, - 0x023c38656, + 0x023c3865e, 0x00c000858, 0x0afa30004, 0x0afa10014, 0x08fa30020, - 0x023c28656, + 0x023c2865e, 0x0afa30004, 0x0afa20008, 0x08fa30014, @@ -482,41 +482,41 @@ ulong bootcode[]={ 0x000000027, 0x010230004, 0x000000027, - 0x023c1844e, + 0x023c18458, 0x00c0006ac, 0x0afa10004, 0x08fa20020, 0x00c000ebd, 0x0afa20004, - 0x023c18454, + 0x023c1845e, 0x00c00078c, 0x0afa10004, - 0x023c2845d, + 0x023c28467, 0x0afa20004, - 0x023c2845f, + 0x023c28469, 0x0afa20008, 0x00c000eb8, 0x0afa0000c, 0x004210004, 0x000000027, - 0x023c18461, + 0x023c1846b, 0x00c0006ac, 0x0afa10004, 0x08fc38052, - 0x023c28466, + 0x023c28470, 0x0afa30004, 0x0afa20008, 0x020020006, 0x0afa2000c, - 0x023c28468, + 0x023c28472, 0x00c000ed1, 0x0afa20010, 0x004210004, 0x000000027, - 0x023c18469, + 0x023c18473, 0x00c0006ac, 0x0afa10004, - 0x023c1846f, + 0x023c18479, 0x00c00078c, 0x0afa10004, 0x08fc28052, @@ -526,28 +526,28 @@ ulong bootcode[]={ 0x000000027, 0x010400010, 0x000000027, - 0x023c18478, + 0x023c18482, 0x0afa10004, - 0x023c18483, + 0x023c1848d, 0x0afa10008, - 0x023c18488, + 0x023c18492, 0x0afa1000c, 0x00c000864, 0x0afa00010, - 0x023c1849b, + 0x023c184a5, 0x00c0006ac, 0x0afa10004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0028, - 0x023c1848b, + 0x023c18495, 0x0afa10004, - 0x023c18496, + 0x023c184a0, 0x0afa10008, 0x00c000864, 0x0afa0000c, - 0x023c1849b, + 0x023c184a5, 0x00c0006ac, 0x0afa10004, 0x08fa20000, @@ -628,14 +628,14 @@ ulong bootcode[]={ 0x000000027, 0x000400008, 0x023bd0028, - 0x023c2834d, + 0x023c28352, 0x0afa20004, 0x020020002, 0x00c000ed6, 0x0afa20008, 0x004210008, 0x0afc18016, - 0x023c1835b, + 0x023c18360, 0x00c000699, 0x0afa10004, 0x08fa20000, @@ -672,7 +672,7 @@ ulong bootcode[]={ 0x0afa10008, 0x020010002, 0x0afa10004, - 0x023c184a6, + 0x023c184b0, 0x0afa10008, 0x08fa20058, 0x023a10014, @@ -691,7 +691,7 @@ ulong bootcode[]={ 0x0afa10008, 0x020010002, 0x0afa10004, - 0x023c184b4, + 0x023c184be, 0x0afa10008, 0x08fa20058, 0x023a10014, @@ -707,20 +707,20 @@ ulong bootcode[]={ 0x023bdfff0, 0x0afbf0000, 0x08fa30014, - 0x023c284c2, + 0x023c284cc, 0x0afa30004, 0x00c0007ef, 0x0afa20008, 0x010200024, 0x000000027, 0x08fa30014, - 0x023c284c4, + 0x023c284ce, 0x0afa30004, 0x00c0007ef, 0x0afa20008, 0x01020001d, 0x000000027, - 0x023c5857e, + 0x023c58586, 0x08ca30000, 0x000000027, 0x010600014, @@ -748,12 +748,12 @@ ulong bootcode[]={ 0x023bd0010, 0x000400008, 0x000000825, - 0x023c5857e, + 0x023c58586, 0x08ca30000, 0x000000027, 0x01060000e, 0x000000027, - 0x023c184c9, + 0x023c184d3, 0x0afa10004, 0x0afa5000c, 0x08ca30000, @@ -772,7 +772,7 @@ ulong bootcode[]={ 0x000000825, 0x023bdffec, 0x0afbf0000, - 0x023c184cd, + 0x023c184d7, 0x0afa10004, 0x08fa20018, 0x000000027, @@ -793,7 +793,7 @@ ulong bootcode[]={ 0x000000027, 0x004210006, 0x0afa10010, - 0x023c184d6, + 0x023c184e0, 0x00c0006ac, 0x0afa10004, 0x08fa50010, @@ -824,7 +824,7 @@ ulong bootcode[]={ 0x000002025, 0x028810021, 0x010200011, - 0x023c585d2, + 0x023c585da, 0x000040880, 0x000250821, 0x08c210000, @@ -849,7 +849,7 @@ ulong bootcode[]={ 0x000001825, 0x028610021, 0x01020000d, - 0x023c485d2, + 0x023c485da, 0x000030880, 0x000240821, 0x08c210000, @@ -881,7 +881,7 @@ ulong bootcode[]={ 0x023bd0008, 0x023bdfff0, 0x0afbf0000, - 0x023c585d2, + 0x023c585da, 0x020030020, 0x004600010, 0x000000027, @@ -897,7 +897,7 @@ ulong bootcode[]={ 0x00080f809, 0x0ac200000, 0x08fa3000c, - 0x023c585d2, + 0x023c585da, 0x008000774, 0x02463ffff, 0x08fa20014, @@ -2790,7 +2790,7 @@ ulong bootcode[]={ 0x023bd0004, 0x023bdfffc, 0x08fc7808e, - 0x023c684fe, + 0x023c68506, 0x083a2000b, 0x000000027, 0x03041007f, @@ -2933,7 +2933,7 @@ ulong bootcode[]={ 0x0afa8000c, 0x0afab0024, 0x0afab0010, - 0x023c184fe, + 0x023c18506, 0x030a2007f, 0x000220821, 0x080220000, @@ -4435,116 +4435,118 @@ ulong bootcode[]={ 0x064617461, 0x0006f7065, 0x06e696e67, - 0x020236e2f, - 0x0322f6461, - 0x074610023, - 0x06e6e6f6e, - 0x065742f32, - 0x02f63746c, - 0x0006f7065, - 0x06e696e67, - 0x020236e2f, + 0x020236e6e, + 0x06f6e6574, + 0x02f322f64, + 0x061746100, + 0x0236e6e6f, + 0x06e65742f, 0x0322f6374, - 0x06c006e6f, - 0x0702e2e2e, - 0x0006e203d, - 0x02025640a, - 0x000777269, - 0x07465206e, - 0x06f700072, - 0x065616420, - 0x06e6f7000, - 0x06e203d20, - 0x025643b20, - 0x062756620, - 0x03d20252e, - 0x032782025, - 0x02e327820, + 0x06c006f70, + 0x0656e696e, + 0x06720236e, + 0x06e6f6e65, + 0x0742f322f, + 0x063746c00, + 0x06e6f702e, + 0x02e2e006e, + 0x0203d2025, + 0x0640a0077, + 0x072697465, + 0x0206e6f70, + 0x000726561, + 0x064206e6f, + 0x070006e20, + 0x03d202564, + 0x03b206275, + 0x066203d20, 0x0252e3278, 0x020252e32, - 0x0780a0066, - 0x06f726d61, - 0x074206e6f, - 0x070006e6f, - 0x07420526e, - 0x06f700073, - 0x065737369, - 0x06f6e2e2e, - 0x02e007772, - 0x069746520, - 0x073657373, - 0x0696f6e00, - 0x072656164, - 0x020736573, - 0x073696f6e, + 0x07820252e, + 0x032782025, + 0x02e32780a, 0x000666f72, 0x06d617420, - 0x073657373, - 0x0696f6e00, + 0x06e6f7000, 0x06e6f7420, - 0x052736573, + 0x0526e6f70, + 0x000736573, 0x073696f6e, - 0x000657272, - 0x06f722025, - 0x0643b0072, - 0x0656d6f74, - 0x065206572, - 0x0726f7200, - 0x0706f7374, 0x02e2e2e00, - 0x023732f25, - 0x073006372, - 0x065617465, - 0x000256400, 0x077726974, - 0x065002373, - 0x02f626f6f, - 0x074006372, - 0x065617465, - 0x000256400, - 0x077726974, - 0x065006d6f, - 0x0756e742e, - 0x02e2e002f, - 0x0002f0062, - 0x0696e6400, - 0x02f00006d, - 0x06f756e74, - 0x000737563, - 0x063657373, - 0x00a002f6d, - 0x06970732f, - 0x0696e6974, - 0x000696e69, - 0x074002d6d, - 0x0002f6d69, - 0x070732f69, - 0x06e697400, - 0x0696e6974, - 0x0002f6d69, - 0x070732f69, + 0x065207365, + 0x07373696f, + 0x06e007265, + 0x061642073, + 0x065737369, + 0x06f6e0066, + 0x06f726d61, + 0x074207365, + 0x07373696f, + 0x06e006e6f, + 0x074205273, + 0x065737369, + 0x06f6e0065, + 0x072726f72, + 0x02025643b, + 0x00072656d, + 0x06f746520, + 0x06572726f, + 0x07200706f, + 0x073742e2e, + 0x02e002373, + 0x02f257300, + 0x063726561, + 0x074650025, + 0x064007772, + 0x069746500, + 0x023732f62, + 0x06f6f7400, + 0x063726561, + 0x074650025, + 0x064007772, + 0x069746500, + 0x06d6f756e, + 0x0742e2e2e, + 0x0002f002f, + 0x00062696e, + 0x064002f00, + 0x0006d6f75, + 0x06e740073, + 0x075636365, + 0x073730a00, + 0x02f6d6970, + 0x0732f696e, + 0x069740069, 0x06e697400, - 0x0626f6f74, - 0x03a202573, - 0x03a202573, - 0x00a00626f, + 0x02d6d002f, + 0x06d697073, + 0x02f696e69, + 0x07400696e, + 0x06974002f, + 0x06d697073, + 0x02f696e69, + 0x07400626f, 0x06f743a20, 0x025733a20, 0x025730a00, - 0x03f006865, - 0x06c700025, - 0x0730a0025, - 0x0735b2573, - 0x05d3a2000, - 0x063616e27, - 0x074207265, - 0x061642023, - 0x0632f636f, - 0x06e733b20, - 0x0706c6561, - 0x073652072, - 0x065626f6f, - 0x074000000, + 0x0626f6f74, + 0x03a202573, + 0x03a202573, + 0x00a003f00, + 0x068656c70, + 0x00025730a, + 0x00025735b, + 0x025735d3a, + 0x020006361, + 0x06e277420, + 0x072656164, + 0x02023632f, + 0x0636f6e73, + 0x03b20706c, + 0x065617365, + 0x020726562, + 0x06f6f7400, 0x000000000, 0x000000000, 0x000000000, @@ -4599,8 +4601,6 @@ ulong bootcode[]={ 0x000000000, 0x000000000, 0x000000000, - 0x000047e0, - 0x0, - 0x000047e0, + 0x000047e8, 0x0, }; diff --git a/power/devhs.c b/power/devhs.c index abba2a935e200ae198d9b38691799ae84e4d78d7..05aa23fa724d88392e99d6e263f742aa77caabfb 100644 --- a/power/devhs.c +++ b/power/devhs.c @@ -260,7 +260,7 @@ hsvmestopen(Queue *q, Stream *s) char name[32]; hp = &hsvme[s->dev]; - sprint(name, "**hsvme%d**", s->dev); + sprint(name, "hsvme%d", s->dev); q->ptr = q->other->ptr = hp; hp->rq = q; kproc(name, hsvmekproc, hp); diff --git a/power/errno.h b/power/errno.h index 4cb872bf36ef89d3088f9a8aa2d230dbe883fce3..beb69e232b20047a1a19bc943fe8a21cbb9b369b 100644 --- a/power/errno.h +++ b/power/errno.h @@ -36,7 +36,7 @@ enum{ Etoosmall, /* read or write too small */ Ehungup, /* write to hungup stream */ Ebadnet, /* illegal network address */ - Enoifc, /* no free interface slots */ + Enoifc, /* bad interface or no free interface slots */ Enodev, /* no free devices */ Ebadctl, /* bad process or stream control request */ Enonote, /* note overflow */ diff --git a/power/trap.c b/power/trap.c index 436e234ab73378763eb54f2fc3cc9603b926bde4..de4a3f582a5914aff8e55a058f3d2ab3408a3784 100644 --- a/power/trap.c +++ b/power/trap.c @@ -126,20 +126,26 @@ trap(Ureg *ur) break; case CCPU: - if(u->p->fpstate == FPinit) { + if(u && u->p && u->p->fpstate == FPinit) { restfpregs(&initfp); u->p->fpstate = FPactive; ur->status |= CU1; break; } - if(u->p->fpstate == FPinactive) { + if(u && u->p && u->p->fpstate == FPinactive) { restfpregs(&u->fpsave); u->p->fpstate = FPactive; ur->status |= CU1; break; } + goto Default; default: + if(u && u->p && u->p->fpstate == FPactive){ + savefpregs(&u->fpsave); + u->p->fpstate = FPinactive; + ur->status &= ~CU1; + } Default: /* * This isn't good enough; can still deadlock because we may hold print's locks @@ -433,7 +439,7 @@ syscall(Ureg *aur) * guarantee anything about registers, */ if(u->p->fpstate == FPactive) { - u->p->fpstate = FPinit; /* BUG */ + u->p->fpstate = FPinit; ur->status &= ~CU1; } spllo();