From 9f49b60d534e3ba63fa64a9e6c3565aeaa189f21 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 9 Nov 1991 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1991-11-09 --- gnot/main.c | 4 +- pc/devhard.c | 2 +- pc/main.c | 5 +- pc/vga.c | 98 ++- port/dev.c | 6 +- port/devcons.c | 7 +- port/devdup.c | 2 +- port/devenv.c | 2 +- port/devpipe.c | 2 +- port/devproc.c | 285 +++++--- port/devroot.c | 2 +- port/devsrv.c | 2 +- port/devwren.c | 2 +- port/fault.c | 49 +- port/net.c | 16 +- port/portdat.h | 5 +- port/portfns.h | 3 +- port/proc.c | 3 +- port/segment.c | 3 + port/stream.c | 6 +- power/boot.h | 1708 +++++++++++++++++++++++++++++------------------- power/main.c | 5 +- ss/main.c | 4 +- 23 files changed, 1323 insertions(+), 898 deletions(-) diff --git a/gnot/main.c b/gnot/main.c index 181b6177ceeccf0da45b41c04688ced49b04e0bf..88ab2f06f1cc4c20d40360799ae7add0d759eee3 100644 --- a/gnot/main.c +++ b/gnot/main.c @@ -23,7 +23,6 @@ struct Boot }; #define BOOT ((Boot*)0) -char user[NAMELEN]; char bootuser[NAMELEN]; char bootline[64]; char bootserver[64]; @@ -149,8 +148,7 @@ userinit(void) p->fgrp = newfgrp(); strcpy(p->text, "*init*"); - strcpy(p->user, "bootes"); - strcpy(user, "bootes"); + strcpy(p->user, eve); p->fpstate = FPinit; /* diff --git a/pc/devhard.c b/pc/devhard.c index f10dff0b14507787cc2ff9cd040612612685b0a5..a59ecb6cf047064189240daa8255e20c7a5edf66 100644 --- a/pc/devhard.c +++ b/pc/devhard.c @@ -174,7 +174,7 @@ hardgen(Chan *c, Dirtab *tab, long ntab, long s, Dir *dirp) name[NAMELEN] = 0; qid.path = MKQID(drive, s); l = (pp->end - pp->start) * dp->bytes; - devdir(c, qid, name, l, 0666, dirp); + devdir(c, qid, name, l, eve, 0666, dirp); return 1; } diff --git a/pc/main.c b/pc/main.c index d36fd1042ba668ef0b879fd2491c28af3b6578e6..77434e58ce059674afb11ec009624b25cdcbe98d 100644 --- a/pc/main.c +++ b/pc/main.c @@ -9,8 +9,6 @@ extern long edata; -char user[NAMELEN] = "bootes"; - void main(void) { @@ -19,7 +17,6 @@ main(void) confinit(); screeninit(); printinit(); -crdump(); print("%ludK bytes of physical memory\n", (conf.base1 + conf.npage1*BY2PG)/1024); mmuinit(); trapinit(); @@ -101,7 +98,7 @@ userinit(void) p->fgrp = newfgrp(); strcpy(p->text, "*init*"); - strcpy(p->user, user); + strcpy(p->user, eve); p->fpstate = FPinit; fpoff(); diff --git a/pc/vga.c b/pc/vga.c index 5a9b6cfb740c2572e31bc561f22815d56884acd9..f0f44d3661c440c639c2c93a2f72ca0ba0f0c262 100644 --- a/pc/vga.c +++ b/pc/vga.c @@ -24,6 +24,9 @@ struct{ */ #define MAXX 640 #define MAXY 480 +#define XPERIOD 800 /* Hsync freq == 31.47 KHZ */ +#define YPERIOD 525 /* Vsync freq == 59.9 HZ */ +#define YBORDER 2 #define SCREENMEM (0xA0000 | KZERO) @@ -52,9 +55,15 @@ enum Smmask= 0x02, /* map mask */ CRX= 0x3D4, /* index to crt registers */ CR= 0x3D5, /* crt registers */ - Cvertend= 0x12, /* vertical display end */ - Cmode= 0x17, /* mode register */ + Cvt= 0x06, /* vertical total */ + Cvover= 0x07, /* bits that didn't fit elsewhere */ Cmsl= 0x09, /* max scan line */ + Cvrs= 0x10, /* vertical retrace start */ + Cvre= 0x11, /* vertical retrace end */ + Cvde= 0x12, /* vertical display end */ + Cvbs= 0x15, /* vertical blank start */ + Cvbe= 0x16, /* vertical blank end */ + Cmode= 0x17, /* mode register */ ARX= 0x3C0, /* index to attribute registers */ AR= 0x3C1, /* attribute registers */ Amode= 0x10, /* mode register */ @@ -89,17 +98,6 @@ crout(int reg, int val) outb(CRX, reg); outb(CR, val); } -crdump(void) -{ - uchar x; - int i; - - for(i = 0; i < 0x16; i++){ - outb(CRX, i); - x = inb(CR); - print("cr[0x%lux] = %ux\n", i, x); - } -} /* * m is a bit mask of planes to be affected by CPU writes @@ -118,47 +116,18 @@ vgardplane(int p) } /* - * 2 bit deep display. the bits are adjacent. maybe this - * will work - * 4 color + * set up like vga mode 0x12 + * 16 color (though we only use values 0x0 and 0xf) * 640x480 + * + * we assume the BIOS left the registers in a + * CGA-like mode. Thus we don't set all the registers. */ -vga2(void) +vga12(void) { - int i; - arout(Acpe, 0x00); /* disable planes for output */ - - gscreen.ldepth = 1; - arout(Amode, 0x01); /* color graphics mode */ - grout(Gmisc, 0x01); /* graphics mode */ - grout(Gmode, 0x30); /* 2 bits deep, even bytes are - * planes 0 and 2, odd are planes - * 1 and 3 */ - grout(Grot, 0x00); /* CPU writes bytes to video - * mem without modifications */ - crout(Cmode, 0xe3); /* turn off address wrap & - * word mode */ - crout(Cmsl, 0x40); /* 1 pixel per scan line */ - crout(Cvertend, MAXY); /* 480 lne display */ - srout(Smode, 0x06); /* extended memory, odd/even */ - srout(Sclock, 0x01); /* 8 bits/char */ - srout(Smmask, 0x0f); /* enable 2 planes for writing */ - - arout(Acpe, 0x0f); /* enable 2 planes for output */ - for(i = 0; i < 128*1024;){ - ((uchar*)SCREENMEM)[i++] = 0x1b; - ((uchar*)SCREENMEM)[i++] = 0xe4; - } - for(;;); -} + int overflow; + int msl; -/* - * set up like vga mode 0x11 - * 2 color - * 640x480 - */ -vga1(void) -{ arout(Acpe, 0x00); /* disable planes for output */ gscreen.ldepth = 0; @@ -167,10 +136,33 @@ vga1(void) grout(Gmode, 0x00); /* 1 bit deep */ grout(Grot, 0x00); /* CPU writes bytes to video * mem without modifications */ + + msl = overflow = 0; crout(Cmode, 0xe3); /* turn off address wrap & * word mode */ - crout(Cmsl, 0x40); /* 1 pixel per scan line */ - crout(Cvertend, MAXY-1); /* 480 lne display */ + /* last scan line displayed (first is 0) */ + crout(Cvde, MAXY-1); + overflow |= ((MAXY-1)&0x200) ? 0x40 : 0; + overflow |= ((MAXY-1)&0x100) ? 0x2 : 0; + /* total scan lines (including retrace) - 2 */ + crout(Cvt, (YPERIOD-2)); + overflow |= ((YPERIOD-2)&0x200) ? 0x20 : 0; + overflow |= ((YPERIOD-2)&0x100) ? 0x1 : 0; + /* scan lines at which vertcal retrace starts & ends */ + crout(Cvrs, (MAXY+10)); + overflow |= ((MAXY+10)&0x200) ? 0x80 : 0; + overflow |= ((MAXY+10)&0x100) ? 0x4 : 0; + crout(Cvre, ((YPERIOD-1)&0xf)|0xa0); /* also disable vertical interrupts */ + /* scan lines at which vertical blanking starts & ends */ + crout(Cvbs, (MAXY+YBORDER)); + msl |= ((MAXY+YBORDER)&0x200) ? 0x20 : 0; + overflow |= ((MAXY+YBORDER)&0x100) ? 0x8 : 0; + crout(Cvbe, (YPERIOD-YBORDER)&0x7f); + /* pixels per scan line (always 0 for graphics) */ + crout(Cmsl, 0x40|msl); /* also 10th bit of line compare */ + /* the overflow bits from the other registers */ + crout(Cvover, 0x10|overflow); /* also 9th bit of line compare */ + srout(Smode, 0x06); /* extended memory, * odd/even off */ srout(Sclock, 0x01); /* 8 bits/char */ @@ -186,7 +178,7 @@ screeninit(void) int c; ulong *l; - vga1(); + vga12(); /* * swizzle the font longs. diff --git a/port/dev.c b/port/dev.c index a193f37f12c0e8c1ea303a4dc608df769e7159c8..c31a1fb9d1c745b9c7aa42ffac6f591a03cf943e 100644 --- a/port/dev.c +++ b/port/dev.c @@ -24,7 +24,7 @@ devno(int c, int user) } void -devdir(Chan *c, Qid qid, char *n, long length, long perm, Dir *db) +devdir(Chan *c, Qid qid, char *n, long length, char *user, long perm, Dir *db) { strcpy(db->name, n); db->qid = qid; @@ -48,7 +48,7 @@ devgen(Chan *c, Dirtab *tab, int ntab, int i, Dir *dp) if(tab==0 || i>=ntab) return -1; tab += i; - devdir(c, tab->qid, tab->name, tab->length, tab->perm, dp); + devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp); return 1; } @@ -123,7 +123,7 @@ devstat(Chan *c, char *db, Dirtab *tab, int ntab, Devgen *gen) * here, which is good because we've lost the name by now. */ if(c->qid.path & CHDIR){ - devdir(c, c->qid, ".", 0L, CHDIR|0700, &dir); + devdir(c, c->qid, ".", 0L, eve, CHDIR|0700, &dir); convD2M(&dir, db); return; } diff --git a/port/devcons.c b/port/devcons.c index 5ea487371252ec896a60e17334a2ae237d4dfb2e..de62846f677d4050e920064248b4dd356c843084 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -18,7 +18,9 @@ IOQ printq; IOQ mouseq; KIOQ kbdq; -Ref raw; /* whether kbd i/o is raw (rcons is open) */ +Ref raw; /* whether kbd i/o is raw (rcons is open) */ + +char eve[NAMELEN] = "bootes"; /* * init the queues and set the output routine @@ -432,8 +434,7 @@ consopen(Chan *c, int omode) switch(c->qid.path){ case Quser: if(omode==(OWRITE|OTRUNC)){ - /* truncate? */ - if(strcmp(u->p->user, "bootes") == 0) /* BUG */ + if(strcmp(u->p->user, eve) == 0) u->p->user[0] = 0; else error(Eperm); diff --git a/port/devdup.c b/port/devdup.c index a0d8518215798a4a544bf89fe515c057187e5f82..3451b8cd5239a72fd21b17f4d1404f14c360c608 100644 --- a/port/devdup.c +++ b/port/devdup.c @@ -21,7 +21,7 @@ dupgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) if((f=fgrp->fd[s]) == 0) return 0; sprint(buf, "%ld", s); - devdir(c, (Qid){s, 0}, buf, 0, perm[f->mode&3], dp); + devdir(c, (Qid){s, 0}, buf, 0, eve, perm[f->mode&3], dp); return 1; } diff --git a/port/devenv.c b/port/devenv.c index c58ec41f65f2a605a48d70e5d3c596f1d60a9985..1ada6e49919ef683d9051cfcfd0c8408bd09f18b 100644 --- a/port/devenv.c +++ b/port/devenv.c @@ -66,7 +66,7 @@ envgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) if(!e->name) ans = 0; else{ - devdir(c, (Qid){s+1, (ulong)e->val}, e->name->val, e->val? e->val->len : 0, 0666, dp); + devdir(c, (Qid){s+1, (ulong)e->val}, e->name->val, e->val? e->val->len : 0, eve, 0666, dp); ans = 1; } } diff --git a/port/devpipe.c b/port/devpipe.c index f52487e739011aab241aa4a1c3fd42c9fc806f83..0c7d1e224896059249af1e5d0be842fc9e157f87 100644 --- a/port/devpipe.c +++ b/port/devpipe.c @@ -114,7 +114,7 @@ pipegen(Chan *c, Dirtab *tab, int ntab, int i, Dir *dp) if(tab==0 || i>=ntab) return -1; tab += i; - devdir(c, (Qid){STREAMQID(id, tab->qid.path),0}, tab->name, tab->length, tab->perm, dp); + devdir(c, (Qid){STREAMQID(id, tab->qid.path),0}, tab->name, tab->length, eve, tab->perm, dp); return 1; } diff --git a/port/devproc.c b/port/devproc.c index cb42f22aa9b5c38f640d59ccfbfaadbc483b4b9c..3e2063fbe5784eb2e8857c0cf6f891415f17ca29 100644 --- a/port/devproc.c +++ b/port/devproc.c @@ -4,6 +4,7 @@ #include "dat.h" #include "fns.h" #include "errno.h" +#include "fcall.h" #include "devtab.h" @@ -21,24 +22,18 @@ enum{ #define STATSIZE (2*NAMELEN+12+6*12) Dirtab procdir[]={ - "ctl", {Qctl}, 0, 0600, - "mem", {Qmem}, 0, 0600, - "note", {Qnote}, 0, 0600, + "ctl", {Qctl}, 0, 0000, + "mem", {Qmem}, 0, 0000, + "note", {Qnote}, 0, 0000, "notepg", {Qnotepg}, 0, 0200, - "proc", {Qproc}, sizeof(Proc), 0600, + "proc", {Qproc}, sizeof(Proc), 0000, "segment", {Qsegment}, 0, 0400, "status", {Qstatus}, STATSIZE, 0400, - "text", {Qtext}, 0, 0600, + "text", {Qtext}, 0, 0000, }; -char *sname[]={ /* Segment type from portdat.h */ - "Text", - "Data", - "Bss", - "Stack", - "Shared", - "Phys", -}; +/* Segment type from portdat.h */ +char *sname[]={ "Text", "Data", "Bss", "Stack", "Shared", "Phys" }; /* * Qids are, in path: @@ -54,12 +49,16 @@ char *sname[]={ /* Segment type from portdat.h */ #define SLOT(q) ((((q).path&0x07FFFFFF0)>>QSHIFT)-1) #define PID(q) ((q).vers) +void procctlreq(Proc*, char*, int); +int procctlmemio(Proc*, ulong, int, void*, int); +Chan *procctlnotepg(Chan*, void *va, int n); + int procgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) { Proc *p; char buf[NAMELEN]; - ulong pid, path; + ulong pid, path, perm; if(c->qid.path == CHDIR){ if(s >= conf.nproc) @@ -69,7 +68,7 @@ procgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) if(pid == 0) return 0; sprint(buf, "%d", pid); - devdir(c, (Qid){CHDIR|((s+1)<user, CHDIR|0500, dp); return 1; } if(s >= NPROC) @@ -78,8 +77,13 @@ procgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) panic("procgen"); tab = &procdir[s]; path = c->qid.path&~(CHDIR|((1<qid.path, c->qid.vers}, - tab->name, tab->length, tab->perm, dp); + + p = proctab(SLOT(c->qid)); + perm = tab->perm; + if(perm == 0) + perm = p->procmode; + + devdir(c, (Qid){path|tab->qid.path, c->qid.vers}, tab->name, tab->length, p->user, perm, dp); return 1; } @@ -218,7 +222,18 @@ procremove(Chan *c) void procwstat(Chan *c, char *db) { - error(Eperm); + Proc *p; + Dir d; + + convM2D(db, &d); + p = proctab(SLOT(c->qid)); + if(p->pid != PID(c->qid)) + error(Eprocdied); + + if(strcmp(u->p->user, p->user) != 0 && strcmp(u->p->user, eve) != 0) + error(Eperm); + + p->procmode = d.mode&0777; } void @@ -232,23 +247,17 @@ procread(Chan *c, void *va, long n, ulong offset) char *a = va, *b; char statbuf[NSEG*32]; Proc *p; - Pte *pte; - Segment *s; Page *pg; KMap *k; int i, j; long l; long pid; User *up; - ulong soff; Segment *sg; if(c->qid.path & CHDIR) return devdirread(c, a, n, 0, 0, procgen); - /* - * BUG: should lock(&p->debug)? - */ p = proctab(SLOT(c->qid)); if(p->pid != PID(c->qid)) error(Eprocdied); @@ -260,37 +269,8 @@ procread(Chan *c, void *va, long n, ulong offset) */ if(((offset+n)&~(BY2PG-1)) != (offset&~(BY2PG-1))) n = BY2PG - (offset&(BY2PG-1)); - s = seg(p, offset, 1); - if(s){ - if(p->pid!=PID(c->qid)){ - qunlock(&s->lk); - error(Eprocdied); - } - - soff = offset-s->base; - pte = s->map[soff/PTEMAPMEM]; - pg = 0; - if(pte) - pg = pte->pages[(soff&(PTEMAPMEM-1))/BY2PG]; - - s->steal++; - qunlock(&s->lk); - if(pagedout(pg)){ - pprint("nonresident page addr %lux (complain to philw)\n", offset); - memset(a, 0, n); - }else{ - k = kmap(pg); - b = (char*)VA(k); - memmove(a, b+(offset&(BY2PG-1)), n); - kunmap(k); - } - qlock(&s->lk); - s->steal--; - qunlock(&s->lk); - return n; - } - /* u area */ - if(offset>=USERADDR && offset= USERADDR && offset < USERADDR+BY2PG) { if(offset+n > USERADDR+BY2PG) n = USERADDR+BY2PG - offset; pg = p->upage; @@ -303,21 +283,21 @@ procread(Chan *c, void *va, long n, ulong offset) return n; } - /* kernel memory. BUG: shouldn't be so easygoing. BUG: mem mapping? */ - if(offset>=KZERO && offset= KZERO && offset < KZERO+conf.npage0*BY2PG){ if(offset+n > KZERO+conf.npage0*BY2PG) n = KZERO+conf.npage0*BY2PG - offset; memmove(a, (char*)offset, n); return n; } - if(offset>=KZERO && offset= KZERO && offset < KZERO+conf.base1+conf.npage1*BY2PG){ if(offset+n > KZERO+conf.base1+conf.npage1*BY2PG) n = KZERO+conf.base1+conf.npage1*BY2PG - offset; memmove(a, (char*)offset, n); return n; } - return 0; - break; + + return procctlmemio(p, offset, n, va, 1); case Qnote: lock(&p->debug); @@ -395,7 +375,6 @@ long procwrite(Chan *c, void *va, long n, ulong offset) { Proc *p; - Pgrp *pg; User *up; KMap *k; char buf[ERRLEN]; @@ -404,23 +383,10 @@ procwrite(Chan *c, void *va, long n, ulong offset) error(Eisdir); p = proctab(SLOT(c->qid)); - /* - * Special case: don't worry about process, just use remembered group - */ + + /* Use the remembered pgrp id in the channel rather than the process pgrpid */ if(QID(c->qid) == Qnotepg){ - pg = pgrptab(c->pgrpid.path-1); - qlock(&pg->debug); - if(waserror()){ - qunlock(&pg->debug); - nexterror(); - } - if(pg->pgrpid != c->pgrpid.vers){ - qunlock(&pg->debug); - goto Died; - } - pgrpnote(pg, va, n, NUser); - poperror(); - qunlock(&pg->debug); + procctlnotepg(c, va, n); return n; } @@ -430,37 +396,14 @@ procwrite(Chan *c, void *va, long n, ulong offset) nexterror(); } if(p->pid != PID(c->qid)) - Died: error(Eprocdied); switch(QID(c->qid)){ + case Qmem: + return procctlmemio(p, offset, n, va, 0); case Qctl: - if(n >= 4 && strncmp(va, "exit", 4) == 0) { - if(p->state == Broken) { - ready(p); - break; - } - } - else - if(n >= 4 && strncmp(va, "stop", 4) == 0) { - p->procctl = Proc_stopme; - break; - } - else - if(n >= 5 && strncmp(va, "start", 5) == 0) { - if(p->state == Stopped) { - ready(p); - break; - } - errors("not stopped"); - } - else - if(n >= 4 && strncmp(va, "kill", 4) == 0) { - postnote(p, 0, "sys: killed", NExit); - p->procctl = Proc_exitme; - break; - } - error(Ebadctl); + procctlreq(p, va, n); + return n; case Qnote: k = kmap(p->upage); up = (User*)VA(k); @@ -487,3 +430,137 @@ procwrite(Chan *c, void *va, long n, ulong offset) unlock(&p->debug); return n; } + +Chan * +procctlnotepg(Chan *c, void *va, int n) +{ + Pgrp *pg; + + pg = pgrptab(c->pgrpid.path-1); + qlock(&pg->debug); + if(waserror()){ + qunlock(&pg->debug); + nexterror(); + } + if(pg->pgrpid != c->pgrpid.vers){ + qunlock(&pg->debug); + error(Eprocdied); + } + pgrpnote(pg, va, n, NUser); + poperror(); + qunlock(&pg->debug); +} + +void +procctlreq(Proc *p, char *va, int n) +{ + if(n >= 4) { + if(strncmp(va, "exit", 4) == 0) { + if(p->state == Broken) + ready(p); + return; + } + if(strncmp(va, "stop", 4) == 0) { + p->procctl = Proc_stopme; + return; + } + if(strncmp(va, "kill", 4) == 0) { + postnote(p, 0, "sys: killed", NExit); + p->procctl = Proc_exitme; + return; + } + } + + if(n >= 5 && strncmp(va, "start", 5) == 0) { + if(p->state != Stopped) + errors("not stopped"); + ready(p); + return; + } + error(Ebadctl); +} + +int +procctlmemio(Proc *p, ulong offset, int n, void *va, int read) +{ + Pte **pte; + Page *pg; + KMap *k; + Segment *ps, *s; + ulong soff; + int i; + char *a = va, *b; + + s = seg(p, offset, 1); + if(s == 0) + errors("not in address space"); + + /* Revert a text segment to data */ + if(read == 0 && (s->type&SG_TYPE) == SG_TEXT) { + ps = newseg(SG_DATA, s->base, s->size); + ps->image = s->image; + incref(ps->image); + ps->fstart = s->fstart; + ps->flen = s->flen; + + for(i = 0; i < NSEG; i++) + if(p->seg[i] == s) + break; + if(p->seg[i] != s) + panic("segment gone"); + + qunlock(&s->lk); + putseg(s); + p->seg[i] = ps; + } + else + qunlock(&s->lk); + +Again: + s = seg(p, offset, 1); + if(s == 0) + errors("not in address space"); + + s->steal++; + soff = offset-s->base; + pte = &s->map[soff/PTEMAPMEM]; + if(*pte == 0) { + if(waserror()) { + s->steal--; + nexterror(); + } + if(fixfault(s, offset, read, 0) != 0) { + s->steal--; + poperror(); + goto Again; + } + poperror(); + if(*pte == 0) + panic("procctlmemio"); + } + pg = (*pte)->pages[(soff&(PTEMAPMEM-1))/BY2PG]; + if(pagedout(pg)) { + if(waserror()) { + s->steal--; + nexterror(); + } + if(fixfault(s, offset, read, 0) != 0) { + s->steal--; + poperror(); + goto Again; + } + poperror(); + pg = (*pte)->pages[(soff&(PTEMAPMEM-1))/BY2PG]; + if(pg == 0) + panic("procctlmemio1"); + } + + k = kmap(pg); + b = (char*)VA(k); + memmove(a, b+(offset&(BY2PG-1)), n); + kunmap(k); + + s->steal--; + qunlock(&s->lk); + return n; +} diff --git a/port/devroot.c b/port/devroot.c index 93800bb674df30ed86bb004295afc7c4ce7a2fa1..863e6a7a5bc9becf2e85a5a3bfa4a79edc317265 100644 --- a/port/devroot.c +++ b/port/devroot.c @@ -46,7 +46,7 @@ rootgen(Chan *c, Dirtab *tab, int ntab, int i, Dir *dp) tab += i; else tab = rootmap[i - NROOT]; - devdir(c, tab->qid, tab->name, tab->length, tab->perm, dp); + devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp); return 1; } diff --git a/port/devsrv.c b/port/devsrv.c index 13c8b0cf9243d55b807a8e0218aaf5b06056b9e1..650cdf7c6ce51ff08715667633fe65b3c8cb4576 100644 --- a/port/devsrv.c +++ b/port/devsrv.c @@ -21,7 +21,7 @@ srvgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) return -1; if(srv.chan[s] == 0) return 0; - devdir(c, (Qid){s, 0}, &srv.name[s*NAMELEN], 0, 0666, dp); + devdir(c, (Qid){s, 0}, &srv.name[s*NAMELEN], 0, eve, 0666, dp); return 1; } diff --git a/port/devwren.c b/port/devwren.c index 2ee69351c61d2f7ab2147f2b48ea52df9aaf5b35..a52dc7f2c084cd5149a36b0a4cd54611b7969f92 100644 --- a/port/devwren.c +++ b/port/devwren.c @@ -93,7 +93,7 @@ wrengen(Chan *c, Dirtab *tab, long ntab, long s, Dir *dirp) name[NAMELEN] = 0; qid.path = MKQID(drive, s); l = (pp->end - pp->start) * dp->bytes; - devdir(c, qid, name, l, 0600, dirp); + devdir(c, qid, name, l, eve, 0600, dirp); return 1; } diff --git a/port/fault.c b/port/fault.c index 05100e4bd19bbf9b823ed03a454329e9d3963501..5a2c0e1ced1542e3f7785160c37d49360eeae39d 100644 --- a/port/fault.c +++ b/port/fault.c @@ -13,30 +13,42 @@ void faultexit(char*); int fault(ulong addr, int read) { - ulong mmuphys=0, soff; Segment *s; - Pte **p; - Page **pg, *lkp, *new = 0; - int type; char *sps; sps = u->p->psstate; u->p->psstate = "Fault"; m->pfault++; -again: - s = seg(u->p, addr, 1); - if(s == 0) { - u->p->psstate = sps; - return -1; - } + for(;;) { + s = seg(u->p, addr, 1); + if(s == 0) { + u->p->psstate = sps; + return -1; + } - if(!read && (s->type&SG_RONLY)) { - qunlock(&s->lk); - u->p->psstate = sps; - return -1; + if(!read && (s->type&SG_RONLY)) { + qunlock(&s->lk); + u->p->psstate = sps; + return -1; + } + + if(fixfault(s, addr, read, 1) == 0) + break; } + u->p->psstate = sps; + return 0; +} + +int +fixfault(Segment *s, ulong addr, int read, int doputmmu) +{ + ulong mmuphys=0, soff; + Page **pg, *lkp, *new = 0; + Pte **p; + int type; + addr &= ~(BY2PG-1); soff = addr-s->base; p = &s->map[soff/PTEMAPMEM]; @@ -60,7 +72,7 @@ again: /* Zero fill on demand */ if(*pg == 0) { if(new == 0 && (new = newpage(1, &s, addr)) && s == 0) - goto again; + return -1; *pg = new; new = 0; } @@ -83,7 +95,7 @@ again: if(lkp->ref > 1) { unlockpage(lkp); if(new == 0 && (new = newpage(0, &s, addr)) && s == 0) - goto again; + return -1; *pg = new; new = 0; copypage(lkp, *pg); @@ -120,8 +132,9 @@ again: if(new) putpage(new); - putmmu(addr, mmuphys, *pg); - u->p->psstate = sps; + if(doputmmu) + putmmu(addr, mmuphys, *pg); + return 0; } diff --git a/port/net.c b/port/net.c index 92bff5cf793004cbf4243785d2fc104329071266..b97f78fae42646abcbe80446717b7f6dfbf2fdd8 100644 --- a/port/net.c +++ b/port/net.c @@ -34,7 +34,7 @@ netgen(Chan *c, void *vp, int ntab, int i, Dir *dp) case 0: q.path = CHDIR | Q2nd; strcpy(buf, np->name); - devdir(c, q, buf, 0, 0666, dp); + devdir(c, q, buf, 0, eve, 0666, dp); break; default: return -1; @@ -46,11 +46,11 @@ netgen(Chan *c, void *vp, int ntab, int i, Dir *dp) if(STREAMID(c->qid.path) == 0){ if(i == 0){ q.path = Qclone; - devdir(c, q, "clone", 0, 0666, dp); + devdir(c, q, "clone", 0, eve, 0666, dp); }else if(i < np->nconv){ q.path = CHDIR|STREAMQID(i, Q3rd); sprint(buf, "%d", i); - devdir(c, q, buf, 0, 0666, dp); + devdir(c, q, buf, 0, eve, 0666, dp); }else return -1; return 1; @@ -60,24 +60,24 @@ netgen(Chan *c, void *vp, int ntab, int i, Dir *dp) switch(i){ case 0: q.path = STREAMQID(STREAMID(c->qid.path), Sdataqid); - devdir(c, q, "data", 0, 0666, dp); + devdir(c, q, "data", 0, eve, 0666, dp); break; case 1: q.path = STREAMQID(STREAMID(c->qid.path), Sctlqid); - devdir(c, q, "ctl", 0, 0666, dp); + devdir(c, q, "ctl", 0, eve, 0666, dp); break; case 2: if(np->listen == 0) return 0; q.path = STREAMQID(STREAMID(c->qid.path), Qlisten); - devdir(c, q, "listen", 0, 0666, dp); + devdir(c, q, "listen", 0, eve, 0666, dp); break; default: i -= 3; if(i >= np->ninfo) return -1; q.path = STREAMQID(STREAMID(c->qid.path), Qinf+i); - devdir(c, q, np->info[i].name, 0, 0666, dp); + devdir(c, q, np->info[i].name, 0, eve, 0666, dp); break; } return 1; @@ -117,7 +117,7 @@ netstat(Chan *c, char *db, Network *np) * here, which is good because we've lost the name by now. */ if(c->qid.path & CHDIR){ - devdir(c, c->qid, ".", 0L, CHDIR|0700, &dir); + devdir(c, c->qid, ".", 0L, eve, CHDIR|0700, &dir); convD2M(&dir, db); return; } diff --git a/port/portdat.h b/port/portdat.h index 69af93fd5cf36c099d63962217d98df9ea34cc58..ea68fe29e7d73c24a07cff03a6e60e8772561129 100644 --- a/port/portdat.h +++ b/port/portdat.h @@ -516,7 +516,10 @@ struct Proc ulong time[6]; /* User, Sys, Real; child U, S, R */ short insyscall; int fpstate; + Lock debug; /* to access debugging elements of User */ + ulong procmode; /* proc device file mode */ + Rendez *r; /* rendezvous point slept on */ Rendez sleep; /* place for tsleep and syssleep */ int notepending; /* note issued but not acted on */ @@ -645,12 +648,12 @@ extern Conf conf; extern ulong initcode[]; extern Dev devtab[]; extern char devchar[]; -extern char user[NAMELEN]; extern char *conffile; extern char *errstrtab[]; extern char *statename[]; extern Palloc palloc; extern Image swapimage; +extern char eve[]; #define CHDIR 0x80000000L #define CHAPPEND 0x40000000L diff --git a/port/portfns.h b/port/portfns.h index ddc5fda7e3e17a8ed86677ce00c11c3ddc050f3c..17f6e34c599f870ef0552e0a76eed577a2d736c0 100644 --- a/port/portfns.h +++ b/port/portfns.h @@ -40,7 +40,7 @@ void delete(List**, List*, List*); void delete0(List**, List*); Chan* devattach(int, char*); Chan* devclone(Chan*, Chan*); -void devdir(Chan*, Qid, char*, long, long, Dir*); +void devdir(Chan*, Qid, char*, long, char*, long, Dir*); long devdirread(Chan*, char*, long, Dirtab*, int, Devgen*); Devgen devgen; int devno(int, int); @@ -69,6 +69,7 @@ int fault(ulong, int); void fdclose(int, int); Chan* fdtochan(int, int, int); void firmware(void); +int fixfault(Segment*, ulong, int, int); void flowctl(Queue*); void flushmmu(void); void freealarm(Alarm*); diff --git a/port/proc.c b/port/proc.c index e657e450b840b671eeac0b87fa7d3394b31eeab3..202f87ed1967648b6ffba66ef275bd981eb58e24 100644 --- a/port/proc.c +++ b/port/proc.c @@ -228,6 +228,7 @@ loop: p->pgrp = 0; p->egrp = 0; p->fgrp = 0; + p->procmode = 0644; p->fpstate = FPinit; p->kp = 0; p->procctl = 0; @@ -706,7 +707,7 @@ kproc(char *name, void (*func)(void *), void *arg) pexit(0, 1); } - user = "bootes"; + user = eve; strcpy(p->user, user); if(kpgrp == 0){ kpgrp = newpgrp(); diff --git a/port/segment.c b/port/segment.c index 27c3729a5a535cd7719458237e0525ed870df3cf..8cc61c866cb8c6058fbc7e9972a2ec51bcb10670 100644 --- a/port/segment.c +++ b/port/segment.c @@ -106,6 +106,7 @@ putseg(Segment *s) } if(decref(s) == 0) { + qlock(&s->lk); if(i) putimage(i); @@ -114,6 +115,8 @@ putseg(Segment *s) if(*pp) freepte(s, *pp); + qunlock(&s->lk); + lock(&segalloc); s->next = segalloc.free; segalloc.free = s; diff --git a/port/stream.c b/port/stream.c index fa532c7a9b9d3c81a0b00249afcc757c72ca06bd..8737f8a45406a42c62397213da1634ac0e8a396d 100644 --- a/port/stream.c +++ b/port/stream.c @@ -787,8 +787,8 @@ streamgen(Chan *c, Dirtab *tab, int ntab, int s, Dir *dp) else return -1; - devdir(c, (Qid){STREAMQID(STREAMID(c->qid.path),tab->qid.path), 0}, tab->name, tab->length, - tab->perm, dp); + devdir(c, (Qid){STREAMQID(STREAMID(c->qid.path),tab->qid.path), 0}, + tab->name, tab->length, eve, tab->perm, dp); return 1; } @@ -1407,7 +1407,7 @@ streamstat(Chan *c, char *db, char *name) unlock(q); } - devdir(c, c->qid, name, n, 0, &dir); + devdir(c, c->qid, name, n, eve, 0, &dir); convD2M(&dir, db); } diff --git a/power/boot.h b/power/boot.h index 1b4c9e64384fe39721d1299463d4fb7421a7e718..1b4ef0547b88506fee4a338cfbec539b5f8c74df 100644 --- a/power/boot.h +++ b/power/boot.h @@ -1,8 +1,8 @@ ulong bootcode[]={ 0x000000407, - 0x0000056a0, - 0x000000708, - 0x000001290, + 0x000005bf0, + 0x000000710, + 0x000001390, 0x000000000, 0x000001020, 0x000000000, @@ -24,16 +24,16 @@ ulong bootcode[]={ 0x023bdffec, 0x0afbf0000, 0x0afa0000c, - 0x023c2824d, + 0x023c28255, 0x0afa20004, 0x00c000a6b, 0x0afa00008, - 0x023c38255, + 0x023c3825d, 0x0afa30004, 0x020020001, 0x00c000a6b, 0x0afa20008, - 0x023c3825d, + 0x023c38265, 0x0afa30004, 0x020020001, 0x00c000a6b, @@ -67,19 +67,19 @@ ulong bootcode[]={ 0x024a5ffff, 0x023c38026, 0x0afa30004, - 0x023c28265, + 0x023c2826d, 0x00c0009f4, 0x0afa20008, - 0x023c3990a, + 0x023c39a12, 0x0afa30004, - 0x023c28270, + 0x023c28278, 0x00c0009f4, 0x0afa20008, 0x08fa5001c, 0x08fa30018, 0x020020001, 0x010620029, - 0x023c4990a, + 0x023c49a12, 0x020020002, 0x010620019, 0x000000027, @@ -128,7 +128,7 @@ ulong bootcode[]={ 0x000000027, 0x023bdfff4, 0x0afbf0000, - 0x023c28278, + 0x023c28280, 0x0afa20004, 0x020030002, 0x00c000a6b, @@ -159,7 +159,7 @@ ulong bootcode[]={ 0x000000027, 0x014400008, 0x000000027, - 0x023c38280, + 0x023c38288, 0x00c00093f, 0x0afa30004, 0x08fa20000, @@ -170,14 +170,14 @@ ulong bootcode[]={ 0x000000027, 0x014400048, 0x000000027, - 0x023c282ae, + 0x023c282b6, 0x0afa20004, 0x020040002, 0x00c000a6b, 0x0afa40008, 0x004210008, 0x000000027, - 0x023c382b7, + 0x023c382bf, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -186,7 +186,7 @@ ulong bootcode[]={ 0x02001ffff, 0x0afa10020, 0x0afa10004, - 0x023c482c8, + 0x023c482d0, 0x0afa40008, 0x02003000d, 0x00c000a7f, @@ -196,7 +196,7 @@ ulong bootcode[]={ 0x000000027, 0x00c000a53, 0x0afa50004, - 0x023c382d6, + 0x023c382de, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -204,7 +204,7 @@ ulong bootcode[]={ 0x000400008, 0x02001ffff, 0x0afa50004, - 0x023c482e4, + 0x023c482ec, 0x0afa40008, 0x02003000c, 0x00c000a7f, @@ -214,7 +214,7 @@ ulong bootcode[]={ 0x000000027, 0x00c000a53, 0x0afa50004, - 0x023c382f1, + 0x023c382f9, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -222,7 +222,7 @@ ulong bootcode[]={ 0x000400008, 0x02001ffff, 0x0afa50004, - 0x023c482fe, + 0x023c48306, 0x0afa40008, 0x02003000c, 0x00c000a7f, @@ -232,7 +232,7 @@ ulong bootcode[]={ 0x08fa20020, 0x00c000a53, 0x0afa20004, - 0x023c3830b, + 0x023c38313, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -241,21 +241,21 @@ ulong bootcode[]={ 0x02001ffff, 0x020020001, 0x0afc28042, - 0x023c28318, + 0x023c28320, 0x0afa20004, 0x020040002, 0x00c000a6b, 0x0afa40008, 0x004210008, 0x0afa10018, - 0x023c38327, + 0x023c3832f, 0x00c0007fc, 0x0afa30004, 0x08fa20000, 0x023bd0024, 0x000400008, 0x02001ffff, - 0x023c3833e, + 0x023c38346, 0x0afa30004, 0x020040002, 0x00c000a6b, @@ -265,7 +265,7 @@ ulong bootcode[]={ 0x08fa20018, 0x00c000a53, 0x0afa20004, - 0x023c2834c, + 0x023c28354, 0x0afa20004, 0x00c0007fc, 0x02003ffff, @@ -309,10 +309,10 @@ ulong bootcode[]={ 0x023bd0024, 0x000400008, 0x02001ffff, - 0x023c28362, + 0x023c2836a, 0x0afc28022, - 0x023c38368, - 0x0afc380fe, + 0x023c38370, + 0x0afc38106, 0x08fa10018, 0x08fa20000, 0x000000027, @@ -326,14 +326,14 @@ ulong bootcode[]={ 0x000000027, 0x014400038, 0x000000027, - 0x023c28370, + 0x023c28378, 0x0afa20004, 0x020040002, 0x00c000a6b, 0x0afa40008, 0x004210008, 0x0afc1801e, - 0x023c38377, + 0x023c3837f, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -341,7 +341,7 @@ ulong bootcode[]={ 0x000400008, 0x02001ffff, 0x0afa10004, - 0x023c48386, + 0x023c4838e, 0x0afa40008, 0x02003000a, 0x00c000a7f, @@ -351,7 +351,7 @@ ulong bootcode[]={ 0x000000027, 0x00c000a53, 0x0afa50004, - 0x023c38391, + 0x023c38399, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -359,7 +359,7 @@ ulong bootcode[]={ 0x000400008, 0x02001ffff, 0x0afa50004, - 0x023c4839c, + 0x023c483a4, 0x0afa40008, 0x020030017, 0x00c000a7f, @@ -369,7 +369,7 @@ ulong bootcode[]={ 0x08fc2801e, 0x00c000a53, 0x0afa20004, - 0x023c383b4, + 0x023c383bc, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -381,21 +381,21 @@ ulong bootcode[]={ 0x0200307d0, 0x00c000a73, 0x0afa30004, - 0x023c383cc, + 0x023c383d4, 0x0afa30004, 0x020040002, 0x00c000a6b, 0x0afa40008, 0x004210008, 0x0afa10054, - 0x023c283d9, + 0x023c283e1, 0x00c0007fc, 0x0afa20004, 0x08fa20000, 0x023bd0058, 0x000400008, 0x02001ffff, - 0x023c283ee, + 0x023c283f6, 0x0afa20004, 0x020040002, 0x00c000a6b, @@ -405,7 +405,7 @@ ulong bootcode[]={ 0x08fa30054, 0x00c000a53, 0x0afa30004, - 0x023c383fa, + 0x023c38402, 0x0afa30004, 0x00c0007fc, 0x02002ffff, @@ -415,7 +415,7 @@ ulong bootcode[]={ 0x02001ffff, 0x023a20014, 0x0afa20004, - 0x023c3840e, + 0x023c38416, 0x0afa30008, 0x08fa2005c, 0x00c000989, @@ -448,10 +448,10 @@ ulong bootcode[]={ 0x023bd0058, 0x000400008, 0x02001ffff, - 0x023c28419, + 0x023c28421, 0x0afc28022, - 0x023c3841c, - 0x0afc380fe, + 0x023c38424, + 0x0afc38106, 0x08fa10054, 0x08fa20000, 0x000000027, @@ -481,17 +481,17 @@ ulong bootcode[]={ 0x000400008, 0x02001ffff, 0x0afa50004, - 0x023c4841f, + 0x023c48427, 0x0afa40008, 0x0afa0000c, - 0x023c28424, + 0x023c2842c, 0x0afa20010, - 0x023c48425, + 0x023c4842d, 0x00c000a67, 0x0afa40014, 0x004210004, 0x000000027, - 0x023c28426, + 0x023c2842e, 0x00c00080e, 0x0afa20004, 0x00c000a63, @@ -514,7 +514,7 @@ ulong bootcode[]={ 0x0afa20004, 0x020030002, 0x0afa30004, - 0x023c28476, + 0x023c2847e, 0x00c000964, 0x0afa20008, 0x020030bb8, @@ -522,10 +522,10 @@ ulong bootcode[]={ 0x0afa30004, 0x020020002, 0x0afa20004, - 0x023c38487, + 0x023c3848f, 0x00c000964, 0x0afa30008, - 0x023c28496, + 0x023c2849e, 0x0afa20004, 0x020030002, 0x00c000a6b, @@ -534,38 +534,38 @@ ulong bootcode[]={ 0x000000027, 0x000400008, 0x023bd00d4, - 0x023c3842c, + 0x023c38434, 0x0afa30004, - 0x023c28445, + 0x023c2844d, 0x0afa20008, - 0x023c38450, + 0x023c38458, 0x0afa3000c, 0x00c000a3f, 0x0afa00010, - 0x023c28460, + 0x023c28468, 0x00c00080e, 0x0afa20004, - 0x023c38471, + 0x023c38479, 0x00c00080e, 0x0afa30004, 0x0080005f6, 0x000000027, 0x023bdffe0, 0x0afbf0000, - 0x023c284a0, + 0x023c284a8, 0x00c00093f, 0x0afa20004, 0x020030032, - 0x0a3c3970a, + 0x0a3c39712, 0x03402ffff, - 0x0a7c2970e, - 0x023c2970a, + 0x0a7c29716, + 0x023c29712, 0x0afa20004, - 0x023c4870a, + 0x023c48712, 0x00c000e1e, 0x0afa40008, 0x08fa30024, - 0x023c4870a, + 0x023c48712, 0x0afa30004, 0x0afa40008, 0x0afa1001c, @@ -575,11 +575,11 @@ ulong bootcode[]={ 0x000000027, 0x01025000c, 0x000000027, - 0x023c284a7, + 0x023c284af, 0x0afa20004, 0x00c00093f, 0x0afa50008, - 0x023c284af, + 0x023c284b7, 0x00c0007fc, 0x0afa20004, 0x08fa20000, @@ -587,7 +587,7 @@ ulong bootcode[]={ 0x000400008, 0x000000825, 0x08fa20024, - 0x023c4870a, + 0x023c48712, 0x0afa20004, 0x0afa40008, 0x020021000, @@ -595,7 +595,7 @@ ulong bootcode[]={ 0x0afa2000c, 0x01c200008, 0x000000027, - 0x023c384b9, + 0x023c384c1, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -607,84 +607,84 @@ ulong bootcode[]={ 0x000000027, 0x00800064b, 0x000000027, - 0x023c3870a, + 0x023c38712, 0x0afa30004, - 0x023c4970a, + 0x023c49712, 0x0afa40008, 0x0afa1001c, 0x00c000b1c, 0x0afa1000c, 0x014200022, 0x000000027, - 0x023c284c2, + 0x023c284ca, 0x0afa20004, 0x08fa3001c, 0x000000027, 0x0afa30008, - 0x083c2870a, + 0x083c28712, 0x000000027, 0x000021600, 0x000021603, 0x0afa2000c, - 0x083c3870b, + 0x083c38713, 0x000000027, 0x000031e00, 0x000031e03, 0x0afa30010, - 0x083c2870c, + 0x083c28714, 0x000000027, 0x000021600, 0x000021603, 0x0afa20014, - 0x083c3870d, + 0x083c38715, 0x000000027, 0x000031e00, 0x000031e03, 0x00c00093f, 0x0afa30018, - 0x023c284e5, + 0x023c284ed, 0x00c0007fc, 0x0afa20004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x083c3970a, + 0x083c39712, 0x020020033, 0x010620008, 0x000000027, - 0x023c384f0, + 0x023c384f8, 0x00c0007fc, 0x0afa30004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x097c2970e, + 0x097c29716, 0x03403ffff, 0x010430008, 0x000000027, - 0x023c284f9, + 0x023c28501, 0x00c0007fc, 0x0afa20004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x023c38507, + 0x023c3850f, 0x00c00093f, 0x0afa30004, 0x020020034, - 0x0a3c2970a, + 0x0a3c29712, 0x03403ffff, - 0x0a7c3970e, - 0x023c3970a, + 0x0a7c39716, + 0x023c39712, 0x0afa30004, - 0x023c4870a, + 0x023c48712, 0x00c000e1e, 0x0afa40008, 0x08fa20024, - 0x023c4870a, + 0x023c48712, 0x0afa20004, 0x0afa40008, 0x0afa1001c, @@ -694,7 +694,7 @@ ulong bootcode[]={ 0x000000027, 0x010240008, 0x000000027, - 0x023c28512, + 0x023c2851a, 0x00c0007fc, 0x0afa20004, 0x08fa20000, @@ -702,7 +702,7 @@ ulong bootcode[]={ 0x000400008, 0x000000825, 0x08fa20024, - 0x023c4870a, + 0x023c48712, 0x0afa20004, 0x0afa40008, 0x020021000, @@ -710,48 +710,48 @@ ulong bootcode[]={ 0x0afa2000c, 0x01c200008, 0x000000027, - 0x023c38520, + 0x023c38528, 0x00c0007fc, 0x0afa30004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x023c3870a, + 0x023c38712, 0x0afa30004, - 0x023c4970a, + 0x023c49712, 0x0afa40008, 0x00c000b1c, 0x0afa1000c, 0x014200008, 0x000000027, - 0x023c2852d, + 0x023c28535, 0x00c0007fc, 0x0afa20004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x097c3970e, + 0x097c39716, 0x03402ffff, 0x010620008, 0x000000027, - 0x023c3853c, + 0x023c38544, 0x00c0007fc, 0x0afa30004, 0x08fa20000, 0x023bd0020, 0x000400008, 0x000000825, - 0x083c2970a, + 0x083c29712, 0x020030037, 0x01443000d, 0x000000027, 0x020020002, 0x0afa20004, - 0x023c3854a, + 0x023c38552, 0x0afa30008, - 0x023c2970a, + 0x023c29712, 0x024420008, 0x00c000964, 0x0afa2000c, @@ -759,11 +759,11 @@ ulong bootcode[]={ 0x023bd0020, 0x000400008, 0x000000825, - 0x083c3970a, + 0x083c39712, 0x020020035, 0x010620008, 0x000000027, - 0x023c3855a, + 0x023c38562, 0x00c0007fc, 0x0afa30004, 0x08fa20000, @@ -781,7 +781,7 @@ ulong bootcode[]={ 0x000000027, 0x01040000a, 0x000000027, - 0x023c38567, + 0x023c3856f, 0x0afa30004, 0x023c28026, 0x0afa20008, @@ -798,7 +798,7 @@ ulong bootcode[]={ 0x0afc28006, 0x023c28026, 0x0afa20004, - 0x023c4856e, + 0x023c48576, 0x0afa40008, 0x020020004, 0x00c0009a1, @@ -813,7 +813,7 @@ ulong bootcode[]={ 0x0afc68006, 0x004c10008, 0x000000027, - 0x023c2859f, + 0x023c285a7, 0x00c00093f, 0x0afa20004, 0x08fa20000, @@ -828,79 +828,79 @@ ulong bootcode[]={ 0x000000027, 0x000400008, 0x023bd0068, - 0x023c385ae, + 0x023c385b6, 0x0afa30004, 0x08fc28006, 0x00c00084e, 0x0afa20008, - 0x023c385b3, + 0x023c385bb, 0x0afa30004, 0x08fc28006, 0x00c00084e, 0x0afa20008, - 0x023c385ba, + 0x023c385c2, 0x00c00093f, 0x0afa30004, - 0x023c385c3, + 0x023c385cb, 0x0afa30004, - 0x023c485c5, + 0x023c485cd, 0x0afa40008, 0x00c000a4f, 0x0afa0000c, 0x004210004, 0x000000027, - 0x023c285c7, + 0x023c285cf, 0x00c00080e, 0x0afa20004, 0x08fc28006, - 0x023c485cc, + 0x023c485d4, 0x0afa20004, 0x0afa40008, 0x020020006, 0x0afa2000c, - 0x023c485ce, + 0x023c485d6, 0x0afa40010, - 0x023c285cf, + 0x023c285d7, 0x00c000a67, 0x0afa20014, 0x004210004, 0x000000027, - 0x023c385d0, + 0x023c385d8, 0x00c00080e, 0x0afa30004, 0x00c000891, 0x000000027, - 0x023c285d6, + 0x023c285de, 0x00c00093f, 0x0afa20004, 0x08fc58022, - 0x08fc380fe, + 0x08fc38106, 0x000000027, 0x01060001d, 0x000000027, 0x023a20018, 0x0afa20004, - 0x023c385df, + 0x023c385e7, 0x0afa30008, 0x00c000989, 0x0afa5000c, - 0x08fc280fe, - 0x023c485e7, + 0x08fc28106, + 0x023c485ef, 0x0afa20004, 0x00c0009e1, 0x0afa40008, - 0x08fc580fe, + 0x08fc58106, 0x014200044, 0x000000027, 0x0afa50004, - 0x023c385ea, + 0x023c385f2, 0x0afa30008, 0x020020001, 0x00c000a4f, 0x0afa2000c, 0x023a30018, 0x0afa30004, - 0x023c285ef, + 0x023c285f7, 0x0afa20008, 0x00c000a4f, 0x0afa0000c, @@ -910,18 +910,18 @@ ulong bootcode[]={ 0x000000027, 0x023a20018, 0x0afa20004, - 0x023c385f8, + 0x023c38600, 0x0afa30008, 0x00c000989, 0x0afa5000c, - 0x023c38608, + 0x023c38610, 0x0afa30004, 0x023a20018, 0x00c00093f, 0x0afa20008, 0x023a30018, 0x0afa30004, - 0x023c2862a, + 0x023c28632, 0x0afa20008, 0x00c000a4f, 0x0afa0000c, @@ -929,30 +929,30 @@ ulong bootcode[]={ 0x000000027, 0x010600010, 0x000000027, - 0x023c2863b, + 0x023c28643, 0x0afa20004, - 0x023c38646, + 0x023c3864e, 0x0afa30008, - 0x023c2864b, + 0x023c28653, 0x0afa2000c, 0x00c000a3f, 0x0afa00010, - 0x023c28662, + 0x023c2866a, 0x00c00080e, 0x0afa20004, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0068, - 0x023c3864f, + 0x023c38657, 0x0afa30004, - 0x023c2865a, + 0x023c28662, 0x0afa20008, - 0x023c3865f, + 0x023c38667, 0x0afa3000c, 0x00c000a3f, 0x0afa00010, - 0x023c28662, + 0x023c2866a, 0x00c00080e, 0x0afa20004, 0x08fa20000, @@ -966,7 +966,7 @@ ulong bootcode[]={ 0x0afa0000c, 0x008000783, 0x000000027, - 0x023c38583, + 0x023c3858b, 0x00c00093f, 0x0afa30004, 0x0200203e8, @@ -977,7 +977,7 @@ ulong bootcode[]={ 0x008000718, 0x024450001, 0x0afa50004, - 0x023c48573, + 0x023c4857b, 0x0afa40008, 0x020030004, 0x00c0009a1, @@ -990,7 +990,7 @@ ulong bootcode[]={ 0x00800072a, 0x000013025, 0x0afa50004, - 0x023c48578, + 0x023c48580, 0x0afa40008, 0x020020003, 0x00c0009a1, @@ -1003,7 +1003,7 @@ ulong bootcode[]={ 0x00800072a, 0x000013025, 0x0afa50004, - 0x023c4857c, + 0x023c48584, 0x0afa40008, 0x020030006, 0x00c0009a1, @@ -1026,7 +1026,7 @@ ulong bootcode[]={ 0x0afa30004, 0x020020002, 0x0afa20004, - 0x023c3866d, + 0x023c38675, 0x0afa30008, 0x08fa20058, 0x023a30014, @@ -1044,7 +1044,7 @@ ulong bootcode[]={ 0x0afa20004, 0x020030002, 0x0afa30004, - 0x023c2867b, + 0x023c28683, 0x0afa20008, 0x08fa30058, 0x023a20014, @@ -1059,7 +1059,7 @@ ulong bootcode[]={ 0x023bd0054, 0x023bdfeec, 0x0afbf0000, - 0x023c28689, + 0x023c28691, 0x0afa20004, 0x08fa30118, 0x000000027, @@ -1079,7 +1079,7 @@ ulong bootcode[]={ 0x000000027, 0x004210006, 0x0afa10110, - 0x023c38692, + 0x023c3869a, 0x00c00080e, 0x0afa30004, 0x08fa50110, @@ -1111,13 +1111,13 @@ ulong bootcode[]={ 0x010200038, 0x000000027, 0x024250001, - 0x023c2870a, + 0x023c28712, 0x0afa20004, - 0x023c386b4, + 0x023c386bc, 0x0afa30008, 0x00c000989, 0x0afa5000c, - 0x023c2870a, + 0x023c28712, 0x0afa20004, 0x020040001, 0x0afa40008, @@ -1126,26 +1126,26 @@ ulong bootcode[]={ 0x0afa2000c, 0x004210004, 0x0afa10018, - 0x023c386ba, + 0x023c386c2, 0x00c00080e, 0x0afa30004, - 0x023c2870a, + 0x023c28712, 0x0afa20004, - 0x023c386c1, + 0x023c386c9, 0x0afa30008, 0x08fa20028, 0x00c000989, 0x0afa2000c, - 0x023c3870a, + 0x023c38712, 0x00c000a33, 0x0afa30004, 0x0afa10014, - 0x023c4870a, + 0x023c48712, 0x00c000a33, 0x0afa40004, 0x0afa10010, 0x08fa40018, - 0x023c3870a, + 0x023c38712, 0x0afa40004, 0x0afa30008, 0x08fa40010, @@ -1155,7 +1155,7 @@ ulong bootcode[]={ 0x000000027, 0x010230004, 0x000000027, - 0x023c286c4, + 0x023c286cc, 0x00c00080e, 0x0afa20004, 0x08fa30018, @@ -1170,10 +1170,10 @@ ulong bootcode[]={ 0x000000027, 0x023bdfefc, 0x0afbf0000, - 0x023c286ca, + 0x023c286d2, 0x00c00093f, 0x0afa20004, - 0x023c286d2, + 0x023c286da, 0x0afa20004, 0x020040002, 0x00c000a6b, @@ -1186,12 +1186,12 @@ ulong bootcode[]={ 0x023bd0104, 0x0afa10018, 0x0afa10004, - 0x023c486da, + 0x023c486e2, 0x0afa40008, 0x0afa0000c, - 0x023c286e2, + 0x023c286ea, 0x0afa20010, - 0x023c486e3, + 0x023c486eb, 0x00c000a67, 0x0afa40014, 0x08fa50018, @@ -1205,14 +1205,14 @@ ulong bootcode[]={ 0x023bd0104, 0x00c000a53, 0x0afa50004, - 0x023c386e4, + 0x023c386ec, 0x0afa30004, 0x023a40090, 0x00c000a77, 0x0afa40008, 0x004210004, 0x000000027, - 0x023c286ec, + 0x023c286f4, 0x00c00080e, 0x0afa20004, 0x023a30090, @@ -1222,16 +1222,16 @@ ulong bootcode[]={ 0x0afa20008, 0x023a30090, 0x0afa30004, - 0x023c286f1, + 0x023c286f9, 0x0afa20008, 0x08fa3007c, 0x00c000989, 0x0afa3000c, 0x0afa00004, - 0x023c286f5, + 0x023c286fd, 0x00c0011e4, 0x0afa20008, - 0x023c286fd, + 0x023c28705, 0x0afa20004, 0x020040001, 0x00c000a6b, @@ -1259,7 +1259,7 @@ ulong bootcode[]={ 0x000002825, 0x028a20021, 0x010400011, - 0x023c69886, + 0x023c6998e, 0x000051080, 0x000461021, 0x08c420000, @@ -1284,7 +1284,7 @@ ulong bootcode[]={ 0x000002025, 0x028820021, 0x01040000d, - 0x023c59886, + 0x023c5998e, 0x000041080, 0x000451021, 0x08c420000, @@ -1316,7 +1316,7 @@ ulong bootcode[]={ 0x023bd0008, 0x023bdfff0, 0x0afbf0000, - 0x023c69886, + 0x023c6998e, 0x020040020, 0x004800010, 0x000000027, @@ -1332,7 +1332,7 @@ ulong bootcode[]={ 0x000a0f809, 0x0ac400000, 0x08fa4000c, - 0x023c69886, + 0x023c6998e, 0x008000927, 0x02484ffff, 0x08fa30014, @@ -1352,7 +1352,7 @@ ulong bootcode[]={ 0x023a41020, 0x0afa3000c, 0x024840004, - 0x00c001261, + 0x00c001257, 0x0afa40010, 0x023a6001c, 0x020020001, @@ -1389,7 +1389,7 @@ ulong bootcode[]={ 0x023a41024, 0x0afa3000c, 0x024840004, - 0x00c001261, + 0x00c001257, 0x0afa40010, 0x08fa21020, 0x023a6001c, @@ -1428,7 +1428,7 @@ ulong bootcode[]={ 0x023a40024, 0x0afa2000c, 0x024840004, - 0x00c001261, + 0x00c001257, 0x0afa40010, 0x08fa20014, 0x000000027, @@ -1480,7 +1480,7 @@ ulong bootcode[]={ 0x014400008, 0x000000027, 0x0afa50004, - 0x00c0017f9, + 0x00c001855, 0x0afa00008, 0x08fa20000, 0x000000027, @@ -1492,7 +1492,7 @@ ulong bootcode[]={ 0x000000027, 0x000042600, 0x000042603, - 0x00c0017f9, + 0x00c001855, 0x0afa40008, 0x010200004, 0x000000027, @@ -1591,7 +1591,7 @@ ulong bootcode[]={ 0x08fa20010, 0x000000027, 0x0afa20004, - 0x00c0017f9, + 0x00c001855, 0x0afa00008, 0x08fa30010, 0x08fa20000, @@ -1675,7 +1675,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x08fa3001c, @@ -1685,7 +1685,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x08fa3001c, @@ -1695,7 +1695,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa5001c, 0x08fa20010, @@ -1890,7 +1890,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x020020040, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x008000b4f, @@ -1921,7 +1921,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x08fa3001c, @@ -1931,7 +1931,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x08fa3001c, @@ -1941,7 +1941,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x008000b4f, @@ -2028,7 +2028,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x008000b4f, @@ -2126,7 +2126,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa6001c, 0x08fa20010, @@ -2481,7 +2481,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x020020074, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x008000b4f, @@ -2499,7 +2499,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x020030074, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x008000b4f, @@ -2525,7 +2525,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02002001c, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x008000b4f, @@ -2556,7 +2556,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02002001e, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x008000b4f, @@ -2574,7 +2574,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x08fa3001c, @@ -2584,7 +2584,7 @@ ulong bootcode[]={ 0x0afa50010, 0x0afa50008, 0x020030024, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x008000b4f, @@ -2651,7 +2651,7 @@ ulong bootcode[]={ 0x024a30008, 0x0afa30008, 0x020020040, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x08fa2001c, @@ -2688,7 +2688,7 @@ ulong bootcode[]={ 0x024a20008, 0x0afa20008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x02003001c, @@ -2699,7 +2699,7 @@ ulong bootcode[]={ 0x000000027, 0x024420024, 0x0afa20008, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x02003001c, @@ -2710,7 +2710,7 @@ ulong bootcode[]={ 0x000000027, 0x024420040, 0x0afa20008, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x000000027, @@ -2816,7 +2816,7 @@ ulong bootcode[]={ 0x024a2000e, 0x0afa20008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x000000027, @@ -2942,7 +2942,7 @@ ulong bootcode[]={ 0x024a2000e, 0x0afa20008, 0x02003001c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa70018, 0x08fa20010, @@ -3179,7 +3179,7 @@ ulong bootcode[]={ 0x000000027, 0x0afa20008, 0x08ca3000c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20018, 0x08fa30010, @@ -3216,7 +3216,7 @@ ulong bootcode[]={ 0x000000027, 0x0afa20008, 0x08ca3000c, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20018, 0x08fa30010, @@ -3414,7 +3414,7 @@ ulong bootcode[]={ 0x024a30008, 0x0afa30008, 0x020020074, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x08fa2001c, @@ -3438,7 +3438,7 @@ ulong bootcode[]={ 0x024a20008, 0x0afa20008, 0x020030074, - 0x00c001941, + 0x00c00199d, 0x0afa3000c, 0x08fa20010, 0x000000027, @@ -3473,7 +3473,7 @@ ulong bootcode[]={ 0x024a3000e, 0x0afa30008, 0x02002001c, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x08fa2001c, @@ -3510,7 +3510,7 @@ ulong bootcode[]={ 0x024a30024, 0x0afa30008, 0x02002001e, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x08fa2001c, @@ -3534,7 +3534,7 @@ ulong bootcode[]={ 0x024a30008, 0x0afa30008, 0x02002001c, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x020020024, @@ -3545,7 +3545,7 @@ ulong bootcode[]={ 0x000000027, 0x024630024, 0x0afa30008, - 0x00c001941, + 0x00c00199d, 0x0afa2000c, 0x08fa30010, 0x08fa2001c, @@ -3559,333 +3559,369 @@ ulong bootcode[]={ 0x00000000c, 0x003e00008, 0x000000027, - 0x023bdfff0, + 0x023bdffec, 0x0afbf0000, - 0x03c020000, - 0x0344253b0, - 0x0afc2810e, - 0x020030001, - 0x0a3c39831, - 0x020020001, - 0x0a3c29833, - 0x020030001, - 0x0a3c39829, - 0x020020001, - 0x0a3c2986e, - 0x020030001, - 0x0a3c39872, - 0x020020001, - 0x0a3c2987b, - 0x03c030000, - 0x034634d1c, - 0x0afc38112, - 0x020020002, - 0x0a3c2986a, - 0x020030002, - 0x0a3c39875, - 0x020020002, - 0x0a3c2987e, - 0x020030002, - 0x0a3c3985e, - 0x03c020000, - 0x034425464, - 0x0afc28116, - 0x020030003, - 0x0a3c3986b, - 0x020020003, - 0x0a3c2986c, - 0x020030003, - 0x0a3c3986d, - 0x020020003, - 0x0a3c2984b, - 0x020030003, - 0x0a3c3984d, - 0x03c020000, - 0x0344252e8, - 0x0afc2811a, - 0x020030004, - 0x0a3c39869, - 0x03c020000, - 0x034425330, - 0x0afc2811e, - 0x020030005, - 0x0a3c39879, - 0x03c020000, - 0x034425380, - 0x0afc28122, - 0x020030006, - 0x0a3c3982b, - 0x020020007, - 0x0afc2808e, - 0x023c39786, - 0x0afa30004, - 0x020020001, - 0x0afa20008, - 0x020030080, - 0x00c0018ac, + 0x023c28112, + 0x0afa20004, + 0x0afa00008, + 0x0200300a0, + 0x00c001908, 0x0afa3000c, - 0x0a3c09786, - 0x0a3c0978f, - 0x0a3c09790, - 0x0a3c097ab, + 0x023c68112, + 0x020050001, + 0x000051880, + 0x000661821, + 0x03c040000, + 0x0348454ec, + 0x0ac640000, + 0x0a3c597b9, + 0x0a3c597bb, + 0x0a3c597b1, + 0x0a3c597f6, + 0x0a3c597fa, + 0x0a3c59803, + 0x024a50001, + 0x000051880, + 0x000661821, + 0x03c040000, + 0x034844dac, + 0x0ac640000, + 0x0a3c597f2, + 0x0a3c597fd, + 0x0a3c59806, + 0x0a3c597e6, + 0x024a50001, + 0x000051880, + 0x000661821, + 0x03c040000, + 0x0348455d4, + 0x0ac640000, + 0x0a3c597f3, + 0x0a3c597f4, + 0x0a3c597f5, + 0x0a3c597d3, + 0x0a3c597d5, + 0x024a50001, + 0x000051080, + 0x000461021, + 0x03c040000, + 0x034845418, + 0x0ac440000, + 0x0a3c597f1, + 0x024a50001, + 0x000051080, + 0x000461021, + 0x03c040000, + 0x03484546c, + 0x0ac440000, + 0x0a3c59801, + 0x024a50001, + 0x000051080, + 0x000461021, + 0x03c040000, + 0x0348454bc, + 0x0ac440000, + 0x0a3c597b3, + 0x024a30001, + 0x0afc3808e, 0x08fa20000, 0x000000027, 0x000400008, - 0x023bd0010, + 0x023bd0014, 0x023bdfffc, 0x0afbf0000, - 0x08fc6808e, + 0x08fa60008, + 0x08fc5808e, 0x000000027, - 0x014c00005, + 0x014a00006, 0x000000027, 0x00c0011e8, 0x000000027, - 0x08fc6808e, + 0x08fa60008, + 0x08fc5808e, 0x000000027, - 0x083a3000b, - 0x028c20028, - 0x03063007f, - 0x000032e00, - 0x000052e03, - 0x014400005, + 0x004c00019, + 0x000000027, + 0x028c20200, + 0x010400016, + 0x000000027, + 0x028a30028, + 0x014600005, 0x000000027, 0x08fa20000, 0x023bd0004, 0x000400008, 0x020010001, - 0x000051600, - 0x000021603, - 0x000021600, - 0x000021603, - 0x023c39806, - 0x000431021, - 0x024c30001, - 0x0afc3808e, - 0x0a0460000, - 0x000051600, - 0x000021603, - 0x000021600, - 0x000021603, - 0x023c39806, - 0x000431021, - 0x080420000, - 0x023c3810a, - 0x000021600, - 0x000021603, - 0x000021080, + 0x000051880, + 0x023c28112, 0x08fa4000c, - 0x000431021, - 0x0ac440000, + 0x000621821, + 0x0ac640000, + 0x023c2978e, + 0x000461021, + 0x0a0450000, + 0x024a20001, + 0x0afc2808e, 0x08fa20000, 0x023bd0004, 0x000400008, 0x000000825, - 0x023bdffcc, + 0x08fa20000, + 0x023bd0004, + 0x000400008, + 0x020010001, + 0x023bdffc8, 0x0afbf0000, - 0x08fab0044, - 0x023ce9786, - 0x08fca80e2, - 0x08fa60040, - 0x08fc2805e, + 0x08fa60044, + 0x08fc3805e, 0x000000027, - 0x0afa2001c, - 0x08fc380de, + 0x0afa3001c, + 0x08fc280de, 0x000000027, - 0x0afa30018, - 0x08fa70038, + 0x0afa20018, 0x08fa3003c, 0x000000027, - 0x0246fffff, - 0x0afcf80de, - 0x001e74823, - 0x000002825, - 0x000a9202a, - 0x01080000c, - 0x000000027, - 0x000c54021, - 0x081080000, - 0x000000027, - 0x000084600, - 0x000084603, - 0x03102007f, - 0x001c21821, - 0x080630000, + 0x0afc3805e, + 0x08fa20040, 0x000000027, - 0x0146000aa, + 0x02442fffc, + 0x0afc280de, + 0x080c30000, 0x000000027, - 0x000c51821, - 0x000e53821, - 0x0afc7805e, - 0x001455021, - 0x0afca80e2, - 0x024660001, - 0x080630000, - 0x020020025, 0x000031e00, 0x000031e03, - 0x010620028, - 0x000032825, - 0x014600013, + 0x0306500ff, + 0x02003007f, + 0x00065202a, + 0x0108000e1, 0x000000027, - 0x000ef202b, - 0x014800002, + 0x0afa60044, + 0x0afa60004, + 0x023a40020, + 0x00c001a41, + 0x0afa40008, + 0x08fa30020, + 0x000012825, + 0x08fa20044, 0x000000027, - 0x025e7ffff, - 0x000ef202b, - 0x010800002, + 0x000433021, + 0x0afa60044, + 0x010a000c6, 0x000000027, - 0x0a0e00000, - 0x08fa3001c, + 0x020020009, + 0x010a200bc, 0x000000027, - 0x0afc3805e, - 0x08fa20018, + 0x02002000a, + 0x010a200b7, 0x000000027, - 0x0afc280de, - 0x08fa20000, - 0x023bd0034, - 0x000400008, - 0x000070825, - 0x000ef202b, - 0x010800004, + 0x020020025, + 0x010a2001d, 0x000000027, - 0x000071025, - 0x024e70001, - 0x0a0450000, - 0x02002000a, - 0x014a20003, - 0x0254a0001, - 0x008001271, - 0x000005025, - 0x020020009, - 0x014a2ffc2, + 0x08fc280e2, 0x000000027, - 0x025430007, - 0x0201cfff8, - 0x0007c5024, - 0x008001271, + 0x024420001, + 0x0afc280e2, + 0x08fc2805e, + 0x08fc380de, 0x000000027, - 0x02008fc18, - 0x0200dfc18, - 0x000006025, - 0x000062825, - 0x024c60001, - 0x0afa60040, - 0x080a50000, + 0x00043202b, + 0x01080ffd8, 0x000000027, - 0x000052e00, - 0x000052e03, - 0x014a00003, + 0x02003007f, + 0x00065202a, + 0x014800007, 0x000000027, - 0x008001271, - 0x024c6ffff, - 0x02002002e, - 0x014a20007, + 0x08fc2805e, 0x000000027, - 0x02002fc18, - 0x015020002, + 0x024430001, + 0x0afc3805e, + 0x008001267, + 0x0a0450000, + 0x08fc3805e, 0x000000027, - 0x000004025, - 0x0080012b8, - 0x000006825, - 0x028a20031, - 0x014400025, + 0x0afa30004, + 0x00c001a0b, + 0x0afa50008, + 0x08fa60044, + 0x008001267, + 0x0afc1805e, + 0x02003fc18, + 0x0afa30034, + 0x02002fc18, + 0x0afa20030, + 0x0afa0002c, + 0x080c30000, 0x000000027, - 0x020030039, + 0x000031e00, + 0x000031e03, + 0x0306500ff, + 0x02003007f, 0x00065202a, - 0x014800021, + 0x010800085, 0x000000027, - 0x000004825, - 0x028a30030, - 0x014600005, + 0x0afa60004, + 0x023a40020, + 0x00c001a41, + 0x0afa40008, + 0x08fa30020, + 0x000012825, + 0x08fa20044, + 0x000000027, + 0x000433021, + 0x014a00003, + 0x0afa60044, + 0x008001267, + 0x024c6ffff, + 0x02003002e, + 0x014a30008, + 0x000000027, + 0x08fa20034, + 0x02003fc18, + 0x014430002, + 0x000000027, + 0x0afa00034, + 0x0080012a7, + 0x0afa00030, + 0x028a30031, + 0x014600026, 0x000000027, 0x020020039, 0x00045202a, - 0x01080000c, + 0x014800022, 0x000000027, - 0x02002fc18, - 0x015020005, + 0x000003825, + 0x028a20030, + 0x014400005, + 0x000000027, + 0x020030039, + 0x00065202a, + 0x01080000d, + 0x000000027, + 0x08fa20034, + 0x02003fc18, + 0x014430005, 0x000000027, - 0x014a0ffe4, - 0x000094025, - 0x008001271, + 0x014a0ffe2, + 0x0afa70034, + 0x008001267, 0x024c6ffff, - 0x014a0ffe0, - 0x000096825, - 0x008001271, + 0x014a0ffde, + 0x0afa70030, + 0x008001267, 0x024c6ffff, - 0x02002000a, - 0x001220018, - 0x000001812, - 0x000651821, + 0x02003000a, + 0x000e30018, + 0x000001012, + 0x000451021, 0x000062825, 0x024c60001, - 0x0afa60040, + 0x0afa60044, 0x080a50000, 0x000000027, 0x000052e00, 0x000052e03, - 0x0080012d4, - 0x02469ffd0, - 0x020030030, - 0x014a30006, + 0x0080012cf, + 0x02447ffd0, + 0x020020030, + 0x014a20007, + 0x000000027, + 0x08fa30034, + 0x02002fc18, + 0x010620003, + 0x000000027, + 0x0080012ce, 0x000000027, + 0x02003002a, + 0x014a3000e, + 0x000000027, + 0x08fa20048, + 0x08fa30048, + 0x08c450000, + 0x024630004, + 0x0afa30048, + 0x08fa20034, 0x02003fc18, - 0x011030003, + 0x014430003, + 0x000000027, + 0x0080012a7, + 0x0afa50034, + 0x0080012a7, + 0x0afa50030, + 0x004a00004, + 0x000003025, + 0x028a20200, + 0x014400020, 0x000000027, - 0x0080012d3, + 0x08fa20048, + 0x000061880, + 0x0afa20004, + 0x08fa40034, 0x000000027, - 0x02002002a, - 0x014a20009, + 0x0afa40008, + 0x08fa20030, 0x000000027, - 0x08d650000, - 0x02002fc18, - 0x015020003, - 0x0256b0004, - 0x0080012b8, - 0x000054025, - 0x0080012b8, - 0x000056825, - 0x030a5007f, - 0x0afab0044, - 0x0afab0004, - 0x0afa80030, - 0x0afa80008, - 0x0afad002c, - 0x0afad000c, - 0x0afac0028, - 0x0afac0010, + 0x0afa2000c, + 0x08fa4002c, + 0x023c28112, + 0x0afa40010, 0x0afa50014, - 0x023c29806, - 0x000451021, - 0x080420000, - 0x023c3810a, - 0x000021600, - 0x000021603, - 0x000021080, - 0x000431021, - 0x08c420000, + 0x000621821, + 0x08c630000, 0x000000027, - 0x00040f809, + 0x00060f809, 0x000000027, - 0x08fcf80de, - 0x08fad002c, - 0x08fab0044, - 0x08fca80e2, - 0x08fa80030, - 0x08fc7805e, - 0x08fa60040, - 0x004210005, - 0x023ce9786, - 0x08fa40028, - 0x000011023, - 0x0080012b8, - 0x000826025, - 0x008001271, - 0x001615821, - 0x000e51021, - 0x024a50001, - 0x008001274, - 0x0a0480000, + 0x08fa60044, + 0x004210006, + 0x000000027, + 0x08fa4002c, + 0x000011823, + 0x000832025, + 0x0080012a7, + 0x0afa4002c, + 0x08fa20048, + 0x000000027, + 0x000411021, + 0x008001267, + 0x0afa20048, + 0x023c2978e, + 0x000453021, + 0x080c60000, + 0x000000027, + 0x000063600, + 0x000063603, + 0x00800130d, + 0x000000027, + 0x024c60001, + 0x014a0ff87, + 0x0afa60044, + 0x008001267, + 0x024c6ffff, + 0x00800128a, + 0x0afc080e2, + 0x08fc380e2, + 0x000000027, + 0x024630008, + 0x0201cfff8, + 0x0007c1824, + 0x00800128a, + 0x0afc380e2, + 0x08fc2805e, + 0x000000027, + 0x0a0400000, + 0x08fc1805e, + 0x08fa2001c, + 0x000000027, + 0x0afc2805e, + 0x08fa30018, + 0x000000027, + 0x0afc380de, + 0x08fa20000, + 0x000000027, + 0x000400008, + 0x023bd0038, + 0x024c60001, + 0x00800127b, + 0x0afa60044, 0x023bdfff0, 0x0afbf0000, 0x08fa40018, @@ -3902,13 +3938,13 @@ ulong bootcode[]={ 0x0afa30004, 0x0afa40008, 0x08fa3001c, - 0x00c001422, + 0x00c001446, 0x0afa3000c, 0x08fa20000, 0x000000027, 0x000400008, 0x023bd0010, - 0x00800133a, + 0x00800135e, 0x000042023, 0x023bdffa8, 0x0afbf0000, @@ -4001,7 +4037,7 @@ ulong bootcode[]={ 0x02002fc18, 0x0afa30008, 0x0afa2000c, - 0x00c00132f, + 0x00c001353, 0x0afa70010, 0x08fa10028, 0x08fa20000, @@ -4020,12 +4056,12 @@ ulong bootcode[]={ 0x024a5ffff, 0x001651021, 0x020040030, - 0x008001396, + 0x0080013ba, 0x0a0440000, 0x024a5ffff, 0x001651021, 0x020040078, - 0x0080013b2, + 0x0080013d6, 0x0a0440000, 0x030e30040, 0x01060001e, @@ -4047,27 +4083,27 @@ ulong bootcode[]={ 0x000000027, 0x01d200003, 0x000000027, - 0x008001387, + 0x0080013ab, 0x000000027, 0x01d000003, 0x000000027, - 0x008001387, + 0x0080013ab, 0x000000027, 0x030e20040, 0x01440ffa0, 0x024a5ffff, 0x0010a001b, - 0x00800137c, + 0x0080013a0, 0x000003010, 0x0010a001b, - 0x0080013c3, + 0x0080013e7, 0x000004012, 0x0200d0001, - 0x008001374, + 0x008001398, 0x000084023, 0x08ca80000, 0x020030004, - 0x00800136f, + 0x008001393, 0x0afa30028, 0x08ca20000, 0x000000027, @@ -4079,15 +4115,15 @@ ulong bootcode[]={ 0x000031c03, 0x020020004, 0x0afa20028, - 0x00800136f, + 0x008001393, 0x000034025, 0x08ca80000, 0x020030004, - 0x00800136f, + 0x008001393, 0x0afa30028, 0x08ca80000, 0x020030004, - 0x00800136f, + 0x008001393, 0x0afa30028, 0x020030030, 0x01043000a, @@ -4095,11 +4131,11 @@ ulong bootcode[]={ 0x020030048, 0x010430003, 0x000000027, - 0x00800136c, + 0x008001390, 0x000000027, 0x08ca90000, 0x020030004, - 0x00800136f, + 0x008001393, 0x0afa30028, 0x08ca30000, 0x000000027, @@ -4109,14 +4145,14 @@ ulong bootcode[]={ 0x03042ffff, 0x020030004, 0x0afa30028, - 0x00800136f, + 0x008001393, 0x000024025, - 0x00800135c, + 0x008001380, 0x0200a000a, 0x0200e0001, - 0x00800135c, + 0x008001380, 0x0200a0010, - 0x00800135c, + 0x008001380, 0x0200a0008, 0x020030075, 0x011430006, @@ -4124,137 +4160,169 @@ ulong bootcode[]={ 0x020030078, 0x01143fff7, 0x000000027, - 0x00800135c, + 0x008001380, 0x000000027, 0x0200a000a, - 0x00800135c, + 0x008001380, 0x034e70020, - 0x023bdfff0, + 0x023bdffe8, 0x0afbf0000, - 0x08fa30014, - 0x00c000a33, - 0x0afa30004, - 0x08fac0014, - 0x08faa0018, - 0x08fc980de, - 0x08fc880e2, - 0x08fa7001c, - 0x08fc6805e, - 0x02002fc18, - 0x011420003, - 0x000012825, - 0x005410045, + 0x08fcc80e2, + 0x08fab0020, + 0x08fca80de, + 0x08fa90024, + 0x08fa8001c, + 0x08fc7805e, + 0x0afa00014, + 0x02003fc18, + 0x011630003, + 0x000002825, + 0x00561005d, 0x000000027, - 0x0000c5825, - 0x0816b0000, + 0x081020000, 0x000000027, - 0x0000b5e00, - 0x0000b5e03, - 0x011600025, - 0x0258c0001, - 0x02002fc18, - 0x010e20005, - 0x000000027, - 0x01ce00003, - 0x000000027, - 0x008001432, - 0x000000027, - 0x000c9202b, - 0x010800005, - 0x000000027, - 0x000061025, - 0x024c60001, - 0x0afc6805e, - 0x0a04b0000, - 0x025080001, - 0x02002000a, - 0x015620008, - 0x0afc880e2, - 0x000004025, - 0x0afc080e2, - 0x02003fc18, - 0x010e3ffe3, + 0x000021600, + 0x000021603, + 0x0304600ff, + 0x02002007f, + 0x00046202a, + 0x010800051, + 0x000000027, + 0x0afa80004, + 0x023a4000c, + 0x00c001a41, + 0x0afa40008, + 0x08fcc80e2, + 0x08fab0020, + 0x08fca80de, + 0x08fa90024, + 0x08fc7805e, + 0x08fa50014, + 0x000013025, + 0x08fa2000c, + 0x08fa3001c, 0x000000027, - 0x008001432, - 0x024e7ffff, - 0x020020009, - 0x01562fff9, + 0x000624021, + 0x0afa8001c, + 0x014c0001a, 0x000000027, - 0x025030007, - 0x0201cfff8, - 0x0007c4024, 0x02003fc18, - 0x010e3ffd8, - 0x0afc880e2, - 0x008001432, - 0x024e7ffff, - 0x02002fc18, - 0x011420003, + 0x011630003, 0x000000027, - 0x005400005, + 0x005600005, 0x000000027, 0x08fa20000, 0x000000027, 0x000400008, - 0x023bd0010, - 0x0000a3823, - 0x000a7202a, + 0x023bd0018, + 0x0000b3023, + 0x000a6202a, 0x01080fff9, 0x000000027, - 0x000c9202b, + 0x000ea202b, 0x010800006, 0x000000027, - 0x000061825, - 0x024c60001, - 0x0afc6805e, + 0x000071025, + 0x024e70001, + 0x0afc7805e, 0x020040020, - 0x0a0640000, - 0x025080001, + 0x0a0440000, + 0x0258c0001, + 0x024a50001, + 0x008001479, + 0x0afcc80e2, 0x024a50001, - 0x008001467, - 0x0afc880e2, - 0x000aa202a, - 0x01080ffba, + 0x02002fc18, + 0x011220005, + 0x0afa50014, + 0x01d200003, + 0x000000027, + 0x008001454, + 0x000000027, + 0x000ea202b, + 0x010800009, + 0x000000027, + 0x02003007f, + 0x00066202a, + 0x01480000b, 0x000000027, - 0x000c9202b, + 0x000071025, + 0x024e70001, + 0x0afc7805e, + 0x0a0460000, + 0x02002fc18, + 0x01122ffb7, + 0x000000027, + 0x02529ffff, + 0x008001454, + 0x0afa90024, + 0x0afa70004, + 0x00c001a0b, + 0x0afa60008, + 0x08fcc80e2, + 0x08fab0020, + 0x08fca80de, + 0x08fa90024, + 0x08fa8001c, + 0x08fa50014, + 0x0afc1805e, + 0x00800149b, + 0x000013825, + 0x025080001, + 0x00800146d, + 0x0afa8001c, + 0x00c001add, + 0x0afa80004, + 0x08fcc80e2, + 0x08fab0020, + 0x08fca80de, + 0x08fa90024, + 0x08fa8001c, + 0x08fc7805e, + 0x000012825, + 0x000ab202a, + 0x01080ff99, + 0x0afa50014, + 0x000ea202b, 0x010800006, 0x000000027, - 0x000061025, - 0x024c60001, - 0x0afc6805e, + 0x000071025, + 0x024e70001, + 0x0afc7805e, 0x020040020, 0x0a0440000, - 0x025080001, + 0x0258c0001, 0x024a50001, - 0x008001476, - 0x0afc880e2, - 0x023bdffe4, + 0x0080014b9, + 0x0afcc80e2, + 0x023bdffd8, 0x0afbf0000, 0x08fc2808e, 0x000000027, - 0x01440001f, + 0x014400028, 0x000000027, 0x00c0011e8, 0x000000027, - 0x08fa40030, - 0x08fa30020, - 0x023c19806, - 0x0afa30004, - 0x08fa20024, - 0x000240821, - 0x0afa20008, - 0x08fa30028, + 0x08fa4003c, + 0x000000027, + 0x004800004, + 0x000002825, + 0x028830200, + 0x014600017, 0x000000027, - 0x0afa3000c, 0x08fa2002c, + 0x000050880, + 0x0afa20004, + 0x08fa30030, 0x000000027, - 0x0afa20010, + 0x0afa30008, + 0x08fa20034, + 0x000000027, + 0x0afa2000c, + 0x08fa30038, + 0x023c28112, + 0x0afa30010, 0x0afa40014, - 0x080210000, - 0x023c2810a, - 0x000010e00, - 0x000010e03, - 0x000010880, 0x000220821, 0x08c210000, 0x000000027, @@ -4263,40 +4331,51 @@ ulong bootcode[]={ 0x08fa20000, 0x000000027, 0x000400008, - 0x023bd001c, - 0x02002002a, - 0x0a3a20018, - 0x08fa30030, - 0x02002002a, - 0x0a3a30019, - 0x0a3a2001a, - 0x0a3a0001b, + 0x023bd0028, + 0x023c3978e, + 0x000642821, + 0x080a50000, + 0x000000027, + 0x000052e00, + 0x000052e03, + 0x0080014d7, + 0x000000027, + 0x023a20018, + 0x0afa20004, + 0x023c380ee, + 0x0afa30008, + 0x08fa2003c, + 0x00c000989, + 0x0afa2000c, 0x023a30018, 0x0afa30004, 0x0afa00008, 0x02002fc18, - 0x00c001422, + 0x00c001446, 0x0afa2000c, 0x08fa20000, - 0x023bd001c, + 0x023bd0028, 0x000400008, 0x000000825, - 0x023bdffec, + 0x023bdffe4, 0x0afbf0000, - 0x08fa30018, 0x023a20010, - 0x08c630000, + 0x0afa20004, + 0x08fa40020, 0x000000027, - 0x0a3a30010, - 0x0a3a00011, + 0x08c840000, + 0x00c001a0b, + 0x0afa40008, + 0x0a0200000, + 0x023a20010, 0x0afa20004, - 0x08fa3001c, + 0x08fa30024, 0x02002fc18, 0x0afa30008, - 0x00c001422, + 0x00c001446, 0x0afa2000c, 0x08fa20000, - 0x023bd0014, + 0x023bd001c, 0x000400008, 0x020010004, 0x023bdffec, @@ -4313,7 +4392,7 @@ ulong bootcode[]={ 0x000000027, 0x0afa3000c, 0x08fa20024, - 0x00c00132f, + 0x00c001353, 0x0afa20010, 0x08fa20000, 0x023bd0014, @@ -4331,51 +4410,64 @@ ulong bootcode[]={ 0x0a0a40000, 0x003e00008, 0x000000825, - 0x08fa30014, - 0x020020068, - 0x00043202a, - 0x014800016, - 0x000000027, - 0x010620012, + 0x023bdfff8, + 0x08fa2001c, + 0x020030068, + 0x00062202a, + 0x01480001f, + 0x000002825, + 0x010430019, 0x000000027, - 0x020020023, - 0x01062000d, + 0x020030023, + 0x010430012, 0x000000027, - 0x02002002b, - 0x010620008, + 0x02003002b, + 0x01043000b, 0x000000027, - 0x02002002d, - 0x010620003, + 0x02003002d, + 0x010430004, 0x000000027, + 0x023bd0008, 0x003e00008, - 0x000000825, + 0x000050823, + 0x020050002, + 0x023bd0008, 0x003e00008, - 0x02001fffe, + 0x000050823, + 0x020050001, + 0x023bd0008, 0x003e00008, - 0x02001ffff, + 0x000050823, + 0x020050004, + 0x023bd0008, 0x003e00008, - 0x02001fffc, + 0x000050823, + 0x020050010, + 0x023bd0008, 0x003e00008, - 0x02001fff0, - 0x02002006c, - 0x010620008, + 0x000050823, + 0x02003006c, + 0x01043000b, 0x000000027, - 0x020020075, - 0x010620003, + 0x020030075, + 0x010430004, 0x000000027, + 0x023bd0008, 0x003e00008, - 0x000000825, + 0x000050823, + 0x020050020, + 0x023bd0008, 0x003e00008, - 0x02001ffe0, - 0x08fa20010, - 0x000000027, - 0x030420008, - 0x010400003, + 0x000050823, + 0x08fa30018, 0x000000027, + 0x030630008, + 0x01060ffdc, + 0x020050008, + 0x020050040, + 0x023bd0008, 0x003e00008, - 0x02001ffc0, - 0x003e00008, - 0x02001fff8, + 0x000050823, 0x023bdff60, 0x0afbf0000, 0x08fa200a4, @@ -4387,18 +4479,18 @@ ulong bootcode[]={ 0x0e7a6004c, 0x0e7a70004, 0x0e7a60008, - 0x00c0018e8, + 0x00c001944, 0x000000027, 0x01020000e, 0x000000027, - 0x023c280ee, + 0x023c280f3, 0x0afa20004, 0x08fa300a8, 0x02002fc18, 0x0afa30008, 0x0afa2000c, 0x08fa300b0, - 0x00c00132f, + 0x00c001353, 0x0afa30010, 0x08fa20000, 0x023bd00a0, @@ -4409,18 +4501,18 @@ ulong bootcode[]={ 0x020030001, 0x0e7a10004, 0x0e7a00008, - 0x00c001918, + 0x00c001974, 0x0afa3000c, 0x01020000e, 0x000000027, - 0x023c280f2, + 0x023c280f7, 0x0afa20004, 0x08fa300a8, 0x02002fc18, 0x0afa30008, 0x0afa2000c, 0x08fa300b0, - 0x00c00132f, + 0x00c001353, 0x0afa30010, 0x08fa20000, 0x023bd00a0, @@ -4431,21 +4523,21 @@ ulong bootcode[]={ 0x02003ffff, 0x0e7a10004, 0x0e7a00008, - 0x00c001918, + 0x00c001974, 0x0afa3000c, 0x08fad00b4, 0x08fac00ac, 0x023a90050, 0x01020000e, 0x023ae0078, - 0x023c280f7, + 0x023c280fc, 0x0afa20004, 0x08fa300a8, 0x02002fc18, 0x0afa30008, 0x0afa2000c, 0x08fa300b0, - 0x00c00132f, + 0x00c001353, 0x0afa30010, 0x08fa20000, 0x023bd00a0, @@ -4489,7 +4581,7 @@ ulong bootcode[]={ 0x023a20034, 0x0e7a10004, 0x0e7a00008, - 0x00c001825, + 0x00c001881, 0x0afa2000c, 0x08fa20034, 0x04444f800, @@ -4513,7 +4605,7 @@ ulong bootcode[]={ 0x000023043, 0x0afa60030, 0x000061023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x0c7a30048, 0x0c7a2004c, @@ -4525,7 +4617,7 @@ ulong bootcode[]={ 0x08fa30034, 0x000000027, 0x000431023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x08fad00b4, 0x023ae0078, @@ -4548,7 +4640,7 @@ ulong bootcode[]={ 0x08fa30034, 0x000000027, 0x000431023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x08fad00b4, 0x08fac00ac, @@ -4557,7 +4649,7 @@ ulong bootcode[]={ 0x0c7a2003c, 0x000000027, 0x046201182, - 0x0080015b9, + 0x008001615, 0x023ae0078, 0x0c7c180e6, 0x0c7c080ea, @@ -4574,7 +4666,7 @@ ulong bootcode[]={ 0x08fa30034, 0x000000027, 0x000431023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x08fad00b4, 0x08fac00ac, @@ -4583,7 +4675,7 @@ ulong bootcode[]={ 0x0c7a2003c, 0x000000027, 0x046201182, - 0x0080015d0, + 0x00800162c, 0x023ae0078, 0x02003fc18, 0x015830002, @@ -4618,7 +4710,7 @@ ulong bootcode[]={ 0x0200cffff, 0x0afac00ac, 0x0200d0065, - 0x00800157d, + 0x0080015d9, 0x0afad00b4, 0x0c7a70048, 0x0c7a6004c, @@ -4632,7 +4724,7 @@ ulong bootcode[]={ 0x08fa30034, 0x02002ffff, 0x000431023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x08fad00b4, 0x023ae0078, @@ -4654,7 +4746,7 @@ ulong bootcode[]={ 0x000671823, 0x004600134, 0x0afa7002c, - 0x00c0017d0, + 0x00c00182c, 0x0afa30004, 0x0c7a30040, 0x0c7a20044, @@ -4663,7 +4755,7 @@ ulong bootcode[]={ 0x046201083, 0x0e7a30004, 0x0e7a20008, - 0x00c00178e, + 0x00c0017ea, 0x000000027, 0x08fad00b4, 0x023ae0078, @@ -4721,7 +4813,7 @@ ulong bootcode[]={ 0x024e70001, 0x02484fff6, 0x0a0440001, - 0x008001660, + 0x0080016bc, 0x024c6ffff, 0x010e00007, 0x0200b0001, @@ -4789,7 +4881,7 @@ ulong bootcode[]={ 0x020030030, 0x0a0430000, 0x024e7ffff, - 0x0080016a7, + 0x008001703, 0x024c60001, 0x019000013, 0x000000027, @@ -4809,7 +4901,7 @@ ulong bootcode[]={ 0x0256b0001, 0x0a0430000, 0x02508ffff, - 0x0080016b8, + 0x008001714, 0x024c60001, 0x08fa300b0, 0x000000027, @@ -4838,7 +4930,7 @@ ulong bootcode[]={ 0x0afa30008, 0x0afa2000c, 0x08fa300b0, - 0x00c00132f, + 0x00c001353, 0x0afa30010, 0x08fa20000, 0x023bd00a0, @@ -4894,19 +4986,19 @@ ulong bootcode[]={ 0x000001810, 0x024630030, 0x0a0430000, - 0x0080016df, + 0x00800173b, 0x024c60001, 0x000061825, 0x001231021, 0x02003002b, 0x0a0430000, - 0x008001700, + 0x00800175c, 0x024c60001, 0x000061025, 0x001221821, 0x020020065, 0x0a0620000, - 0x0080016f6, + 0x008001752, 0x024c60001, 0x020030067, 0x011a30006, @@ -4914,7 +5006,7 @@ ulong bootcode[]={ 0x020030068, 0x011a30003, 0x000000027, - 0x0080016d9, + 0x008001735, 0x000000027, 0x024c7ffff, 0x004e00006, @@ -4934,11 +5026,11 @@ ulong bootcode[]={ 0x000000027, 0x01107ff93, 0x000073025, - 0x0080016d9, + 0x008001735, 0x024c60001, - 0x00800173e, + 0x00800179a, 0x02508ffff, - 0x008001736, + 0x008001792, 0x024e7ffff, 0x08fa30034, 0x02002ffff, @@ -4948,7 +5040,7 @@ ulong bootcode[]={ 0x000003825, 0x08fa30034, 0x0200d0068, - 0x008001694, + 0x0080016f0, 0x001835023, 0x08fa200b0, 0x000000027, @@ -4959,7 +5051,7 @@ ulong bootcode[]={ 0x001221821, 0x02002002b, 0x0a0620000, - 0x008001685, + 0x0080016e1, 0x024c60001, 0x0c7c180e6, 0x0c7c080ea, @@ -4969,7 +5061,7 @@ ulong bootcode[]={ 0x0e7a60044, 0x0e7a70004, 0x0e7a60008, - 0x00c00178e, + 0x00c0017ea, 0x000000027, 0x08fad00b4, 0x023ae0078, @@ -4996,14 +5088,14 @@ ulong bootcode[]={ 0x046222181, 0x0e7a70040, 0x0e7a60044, - 0x008001657, + 0x0080016b3, 0x000000027, - 0x0080015f3, + 0x00800164f, 0x0258cffff, 0x020020001, 0x0afa20014, 0x025ad0020, - 0x00800157d, + 0x0080015d9, 0x0afad00b4, 0x023bdffe8, 0x0afbf0000, @@ -5020,7 +5112,7 @@ ulong bootcode[]={ 0x04624c081, 0x0e7a30004, 0x0e7a20008, - 0x00c001873, + 0x00c0018cf, 0x0afa2000c, 0x04620c032, 0x000000027, @@ -5049,7 +5141,7 @@ ulong bootcode[]={ 0x023a2001c, 0x0e7a30004, 0x0e7a20008, - 0x00c001873, + 0x00c0018cf, 0x0afa2000c, 0x0c7a1001c, 0x0c7a00020, @@ -5065,7 +5157,7 @@ ulong bootcode[]={ 0x04624c081, 0x0e7a30004, 0x0e7a20008, - 0x00c00178e, + 0x00c0017ea, 0x000000027, 0x08fa20000, 0x023bd000c, @@ -5078,7 +5170,7 @@ ulong bootcode[]={ 0x004810008, 0x000000027, 0x000041023, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x08fa20000, 0x023bd0014, @@ -5099,12 +5191,12 @@ ulong bootcode[]={ 0x000042843, 0x0afa50010, 0x000851823, - 0x00c0017d0, + 0x00c00182c, 0x0afa30004, 0x0e7a10008, 0x0e7a0000c, 0x08fa20010, - 0x00c0017d0, + 0x00c00182c, 0x0afa20004, 0x0c7a30008, 0x0c7a2000c, @@ -5259,7 +5351,7 @@ ulong bootcode[]={ 0x00045202a, 0x014800013, 0x000000027, - 0x08fc38102, + 0x08fc3810a, 0x08fa40008, 0x000a31807, 0x0201cffff, @@ -5281,7 +5373,7 @@ ulong bootcode[]={ 0x00065202a, 0x01480fff3, 0x000000027, - 0x08fc38106, + 0x08fc3810e, 0x024a2ffea, 0x000431007, 0x0201cffff, @@ -5289,7 +5381,7 @@ ulong bootcode[]={ 0x08fa4000c, 0x000000027, 0x000821024, - 0x008001894, + 0x0080018f0, 0x0afa2000c, 0x023bdfff0, 0x08fa3001c, @@ -5370,7 +5462,7 @@ ulong bootcode[]={ 0x000000825, 0x0e7a50004, 0x0e7a40008, - 0x00c001918, + 0x00c001974, 0x0afa0000c, 0x014200005, 0x000000027, @@ -5548,8 +5640,256 @@ ulong bootcode[]={ 0x000000027, 0x0a0c8ffff, 0x024c6ffff, - 0x0080019a7, + 0x008001a03, 0x024e7ffff, + 0x08fa50004, + 0x08fa20008, + 0x000000027, + 0x03046ffff, + 0x0200200ff, + 0x00046202a, + 0x014800016, + 0x000000027, + 0x014c00004, + 0x000000027, + 0x000050825, + 0x003e00008, + 0x0a0a60000, + 0x028c30080, + 0x014600005, + 0x000000027, + 0x020020083, + 0x00046202a, + 0x010800004, + 0x000000027, + 0x024a10001, + 0x003e00008, + 0x0a0a60000, + 0x02002ff83, + 0x0a0a20000, + 0x024c2ff81, + 0x024a10002, + 0x003e00008, + 0x0a0a20001, + 0x030c200ff, + 0x014400007, + 0x000000027, + 0x02002ff80, + 0x0a0a20000, + 0x000061203, + 0x024a10002, + 0x003e00008, + 0x0a0a20001, + 0x0200301ff, + 0x00066202a, + 0x014800006, + 0x000000027, + 0x02003ff81, + 0x0a0a30000, + 0x024a10002, + 0x003e00008, + 0x0a0a60001, + 0x02003ff82, + 0x0a0a30000, + 0x000061a03, + 0x0a0a30001, + 0x024a10003, + 0x003e00008, + 0x0a0a60002, + 0x023bdfff4, + 0x08fa60010, + 0x08fa50014, + 0x080c20000, + 0x020030081, + 0x000021600, + 0x000021603, + 0x0304200ff, + 0x000023c00, + 0x000073c03, + 0x030e2ffff, + 0x00062202a, + 0x014800042, + 0x000000027, + 0x010430027, + 0x000000027, + 0x010400016, + 0x000000027, + 0x020030080, + 0x010430009, + 0x000000027, + 0x010a00003, + 0x000000027, + 0x020030001, + 0x0aca30000, + 0x030e1ffff, + 0x023bd000c, + 0x003e00008, + 0x03021ffff, + 0x080c20001, + 0x000000027, + 0x000021600, + 0x000021603, + 0x0304200ff, + 0x000023400, + 0x000063403, + 0x030c3ffff, + 0x014600007, + 0x000000027, + 0x010a00002, + 0x000000027, + 0x0aca00000, + 0x023bd000c, + 0x003e00008, + 0x000000825, + 0x010a00003, + 0x000000027, + 0x020020002, + 0x0aca20000, + 0x030c1ffff, + 0x03021ffff, + 0x023bd000c, + 0x003e00008, + 0x000010a00, + 0x080c20001, + 0x000000027, + 0x000021600, + 0x000021603, + 0x0304200ff, + 0x000023400, + 0x000063403, + 0x030c3ffff, + 0x014600007, + 0x000000027, + 0x010a0ffe9, + 0x000000027, + 0x000000825, + 0x023bd000c, + 0x003e00008, + 0x0aca00000, + 0x010a00003, + 0x000000027, + 0x020020002, + 0x0aca20000, + 0x030c1ffff, + 0x03021ffff, + 0x023bd000c, + 0x003e00008, + 0x024210100, + 0x020030082, + 0x01043001f, + 0x000000027, + 0x020030083, + 0x010430003, + 0x000000027, + 0x008001a56, + 0x000000027, + 0x080c30001, + 0x000000027, + 0x000031e00, + 0x000031e03, + 0x0306300ff, + 0x000033400, + 0x000063403, + 0x030c2ffff, + 0x00002182b, + 0x01060ffc6, + 0x000000027, + 0x030c3ffff, + 0x020020004, + 0x00043202b, + 0x01480ffc1, + 0x000000027, + 0x010a00003, + 0x000000027, + 0x020030002, + 0x0aca30000, + 0x030c1ffff, + 0x03021ffff, + 0x023bd000c, + 0x003e00008, + 0x02421007f, + 0x080c20001, + 0x000000027, + 0x000021600, + 0x000021603, + 0x0304200ff, + 0x000023c00, + 0x000073c03, + 0x030e3ffff, + 0x014600007, + 0x000000027, + 0x010a0ffaf, + 0x000000027, + 0x000000825, + 0x023bd000c, + 0x003e00008, + 0x0aca00000, + 0x080c20002, + 0x000000027, + 0x000021600, + 0x000021603, + 0x0304200ff, + 0x000023400, + 0x000063403, + 0x030c3ffff, + 0x014600007, + 0x000000027, + 0x010a0ff9f, + 0x000000027, + 0x000000825, + 0x023bd000c, + 0x003e00008, + 0x0aca00000, + 0x010a00003, + 0x000000027, + 0x020020003, + 0x0aca20000, + 0x030c1ffff, + 0x03021ffff, + 0x030e2ffff, + 0x03042ffff, + 0x000021200, + 0x023bd000c, + 0x003e00008, + 0x000220821, + 0x023bdffe8, + 0x0afbf0000, + 0x08fa6001c, + 0x000003825, + 0x0afa00010, + 0x080c30000, + 0x000000027, + 0x000031e00, + 0x000031e03, + 0x0306500ff, + 0x02003007f, + 0x00065202a, + 0x010800013, + 0x000000027, + 0x0afa6001c, + 0x0afa60004, + 0x023a40014, + 0x00c001a41, + 0x0afa40008, + 0x08fa70010, + 0x000012825, + 0x08fa30014, + 0x08fa2001c, + 0x014a00005, + 0x000433021, + 0x08fa20000, + 0x023bd0018, + 0x000400008, + 0x000070825, + 0x024e70001, + 0x008001ae2, + 0x0afa70010, + 0x014a0fffc, + 0x024c60001, + 0x08fa20000, + 0x023bd0018, + 0x000400008, + 0x000070825, 0x000000000, 0x000000000, 0x000000000, @@ -5587,18 +5927,18 @@ ulong bootcode[]={ 0x005f5e100, 0x03b9aca00, 0x000000000, - 0x0000071a8, - 0x0000071ad, - 0x0000071c2, - 0x0000071c9, - 0x0000071de, - 0x0000071e4, - 0x0000071f9, + 0x0000071b0, + 0x0000071b5, + 0x0000071ca, + 0x0000071d1, + 0x0000071e6, + 0x0000071ec, 0x000007201, - 0x000007216, - 0x00000721a, - 0x00000722f, - 0x000007236, + 0x000007209, + 0x00000721e, + 0x000007222, + 0x000007237, + 0x00000723e, 0x000000000, 0x000000000, 0x000000000, @@ -5610,14 +5950,16 @@ ulong bootcode[]={ 0x000000000, 0x040240000, 0x000000000, - 0x04e614e00, - 0x02b496e66, - 0x0002d496e, - 0x066000000, + 0x02a25632a, + 0x0004e614e, + 0x0002b496e, + 0x066002d49, + 0x06e660000, + 0x000000000, 0x000000000, 0x0001fffff, 0x07fffffff, - 0x000005214, + 0x000005320, 0x000000000, 0x000000000, 0x000000000, @@ -6001,6 +6343,8 @@ ulong bootcode[]={ 0x0632f7469, 0x06d650000, 0x000000000, - 0x00005dc8, + 0x00006320, + 0x0, + 0x00006320, 0x0, }; diff --git a/power/main.c b/power/main.c index 37da75d2eae89f5c32cf6da38be1077fc5a1cd35..ba3f6744e78b6a594e01ef944cea8ad5dc53f64b 100644 --- a/power/main.c +++ b/power/main.c @@ -44,9 +44,6 @@ char sysname[64]; */ int ioid; - -char user[NAMELEN] = "bootes"; - void main(void) { @@ -258,7 +255,7 @@ userinit(void) p->fgrp = newfgrp(); strcpy(p->text, "*init*"); - strcpy(p->user, "bootes"); + strcpy(p->user, eve); savefpregs(&initfp); p->fpstate = FPinit; diff --git a/ss/main.c b/ss/main.c index a88184fced4d6dedae7b8de119028a5475495849..b848863042adcbbd84d64224f1240b9d021166ba 100644 --- a/ss/main.c +++ b/ss/main.c @@ -10,8 +10,6 @@ #include #include -char user[NAMELEN]; - uchar *intrreg; void @@ -135,7 +133,7 @@ userinit(void) p->fgrp = newfgrp(); strcpy(p->text, "*init*"); - strcpy(p->user, "bootes"); + strcpy(p->user, eve); savefpregs(&initfp); p->fpstate = FPinit;