## diffname gnot/main.c 1990/03091 ## diff -e /dev/null /n/bootesdump/1990/03091/sys/src/9/68020/main.c 0a #include "u.h" #include "lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "io.h" #include "ureg.h" #include "init.h" void main(void) { Lock l; machinit(); mmuinit(); confinit(); printinit(); flushmmu(); procinit0(); pgrpinit(); chaninit(); alarminit(); chandevreset(); pageinit(); userinit(); schedinit(); } void machinit(void) { int n; n = m->machno; memset(m, 0, sizeof(Mach)); m->machno = n; m->mmask = 1<machno; } void mmuinit(void) { ulong l, d, i; /* * Invalidate user addresses */ for(l=0; l<4*1024*1024; l+=BY2PG) putmmu(l, INVALIDPTE); /* * Two meg of usable memory */ for(i=1,l=KTZERO; i<2*1024*1024/BY2PG; l+=BY2PG,i++) putkmmu(l, PPN(l)|PTEVALID|PTEKERNEL); /* * Screen at two meg */ for(i=0,d=DISPLAYRAM; i<256*1024/BY2PG; d+=BY2PG,l+=BY2PG,i++) putkmmu(l, PPN(d)|PTEVALID|PTEKERNEL); } void init0(void) { m->proc = u->p; u->p->state = Running; u->p->mach = m; spllo(); chandevinit(); u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); touser(); } FPsave initfp; void userinit(void) { Proc *p; Seg *s; User *up; p = newproc(); p->pgrp = newpgrp(); strcpy(p->text, "*init*"); strcpy(p->pgrp->user, "bootes"); /* savefpregs(&initfp); /**/ /* p->fpstate = FPinit; /**/ /* * Kernel Stack */ p->sched.pc = (ulong)init0; p->sched.sp = USERADDR+BY2PG-20; /* BUG */ p->sched.sr = SUPER|SPL(7); p->upage = newpage(0, 0, USERADDR|(p->pid&0xFFFF)); /* * User */ up = (User*)(p->upage->pa|KZERO); up->p = p; /* * User Stack */ s = &p->seg[SSEG]; s->proc = p; s->o = neworig(USTKTOP-BY2PG, 1, OWRPERM, 0); s->minva = USTKTOP-BY2PG; s->maxva = USTKTOP; /* * Text */ s = &p->seg[TSEG]; s->proc = p; s->o = neworig(UTZERO, 1, 0, 0); s->o->pte[0].page = newpage(0, 0, UTZERO); memcpy((ulong*)(s->o->pte[0].page->pa|KZERO), initcode, sizeof initcode); s->minva = UTZERO; s->maxva = UTZERO+BY2PG; ready(p); } void exit(void) { int i; u = 0; splhi(); print("exiting\n"); for(;;) ; } /* * Insert new into list after where */ void insert(List **head, List *where, List *new) { if(where == 0){ new->next = *head; *head = new; }else{ new->next = where->next; where->next = new; } } /* * Insert new into list at end */ void append(List **head, List *new) { List *where; where = *head; if(where == 0) *head = new; else{ while(where->next) where = where->next; where->next = new; } new->next = 0; } /* * Delete old from list */ void delete0(List **head, List *old) { List *l; l = *head; if(l == old){ *head = old->next; return; } while(l->next != old) l = l->next; l->next = old->next; } /* * Delete old from list. where->next is known to be old. */ void delete(List **head, List *where, List *old) { if(where == 0){ *head = old->next; return; } where->next = old->next; } Conf conf; void confinit(void) { conf.nmach = 1; if(conf.nmach > MAXMACH) panic("confinit"); conf.nproc = 15; conf.npgrp = 15; conf.npage = (2*1024*1024)/BY2PG; conf.npte = 500; conf.nmod = 50; conf.nalarm = 50; conf.norig = 50; conf.nchan = 100; conf.nenv = 50; conf.nenvchar = 4000; conf.npgenv = 100; conf.nmtab = 50; conf.nmount = 100; conf.nmntdev = 5; conf.nsrv = 32; } . ## diffname gnot/main.c 1990/0310 ## diff -e /n/bootesdump/1990/03091/sys/src/9/68020/main.c /n/bootesdump/1990/0310/sys/src/9/68020/main.c 229a conf.nstream = 64; conf.nqueue = 5 * conf.nstream; conf.nblock = 16 * conf.nstream; . 23a streaminit(); . ## diffname gnot/main.c 1990/0312 ## diff -e /n/bootesdump/1990/0310/sys/src/9/68020/main.c /n/bootesdump/1990/0312/sys/src/9/68020/main.c 230a conf.nmntbuf = 10; conf.nmnthdr = 10; . 222c conf.nalarm = 1000; . 90c strcpy(p->pgrp->user, protouser); . 30a unloadboot(void) { strncpy(protouser, BOOT->user, NAMELEN); } void . 13a unloadboot(); . 9a typedef struct Boot{ long station; long traffic; char user[NAMELEN]; char server[64]; char line[64]; }Boot; #define BOOT ((Boot*)0) char protouser[NAMELEN]; void unloadboot(void); . ## diffname gnot/main.c 1990/0320 ## diff -e /n/bootesdump/1990/0312/sys/src/9/68020/main.c /n/bootesdump/1990/0320/sys/src/9/68020/main.c 239c conf.npage = (4*1024*1024-256*1024)/BY2PG; . 237c conf.nproc = 32; . 77c * Screen at top of memory . 74c for(i=1,l=KTZERO; i<(4*1024*1024-256*1024)/BY2PG; l+=BY2PG,i++) . 72c * Four meg of usable memory, with top 256K for screen . 26d ## diffname gnot/main.c 1990/0321 ## diff -e /n/bootesdump/1990/0320/sys/src/9/68020/main.c /n/bootesdump/1990/0321/sys/src/9/68020/main.c 254c conf.nblock = 32 * conf.nstream; . 243,246c conf.nchan = 200; conf.nenv = 100; conf.nenvchar = 8000; conf.npgenv = 200; . ## diffname gnot/main.c 1990/0322 ## diff -e /n/bootesdump/1990/0321/sys/src/9/68020/main.c /n/bootesdump/1990/0322/sys/src/9/68020/main.c 254c conf.nblock = 12 * conf.nstream; . ## diffname gnot/main.c 1990/0327 ## diff -e /n/bootesdump/1990/0322/sys/src/9/68020/main.c /n/bootesdump/1990/0327/sys/src/9/68020/main.c 255a conf.nbitmap = 100; conf.nbitbyte = 200*1024; . ## diffname gnot/main.c 1990/05151 ## diff -e /n/bootesdump/1990/0327/sys/src/9/68020/main.c /n/bootesdump/1990/05151/sys/src/9/68020/main.c 249,251c conf.nmntdev = 10; conf.nmntbuf = 20; conf.nmnthdr = 20; . ## diffname gnot/main.c 1990/05313 ## diff -e /n/bootesdump/1990/05151/sys/src/9/68020/main.c /n/bootesdump/1990/05313/sys/src/9/68020/main.c 257c conf.nbitbyte = 400*1024; . 249,251c conf.nmntdev = 20; conf.nmntbuf = 2*conf.nmntdev; conf.nmnthdr = 2*conf.nmntdev; . 242c conf.norig = 100; . 240c conf.nmod = 200; . ## diffname gnot/main.c 1990/06021 ## diff -e /n/bootesdump/1990/05313/sys/src/9/68020/main.c /n/bootesdump/1990/06021/sys/src/9/68020/main.c 238c bank[0] = banksize(0); bank[1] = banksize(16); conf.npage0 = (bank[0]*1024*1024)/BY2PG; conf.base0 = 0; conf.npage1 = (bank[1]*1024*1024)/BY2PG; conf.base1 = 16*1024*1024; conf.npage = conf.npage0+conf.npage1; . 236c conf.nproc = 40; . 227a banksize(int base) { ulong va; if(&end > (int *)((KZERO|1024L*1024L)-BY2PG)) return 0; va = UZERO; /* user page 1 is free to play with */ putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG); *(ulong*)va=0; /* 0 at 0M */ putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG); *(ulong*)va=1; /* 1 at 1M */ putmmu(va, PTEVALID|(base+4)*1024L*1024L/BY2PG); *(ulong*)va=4; /* 4 at 4M */ putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG); if(*(ulong*)va==0) return 16; putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG); if(*(ulong*)va==1) return 4; putmmu(va, PTEVALID|(base+4)*1024L*1024L/BY2PG); if(*(ulong*)va==2) return 1; return 0; } . 143c k = kmap(s->o->pte[0].page); memcpy((ulong*)k->va, initcode, sizeof initcode); kunmap(k); . 125a kunmap(k); . 124c k = kmap(p->upage); up = (User*)k->va; . 104a KMap *k; . 38a kmapinit(); . 30a print("bank 0: %dM bank 1: %dM\n", bank[0], bank[1]); . 29a kmapinit(); . 19a int bank[2]; . ## diffname gnot/main.c 1990/0603 ## diff -e /n/bootesdump/1990/06021/sys/src/9/68020/main.c /n/bootesdump/1990/0603/sys/src/9/68020/main.c 295,297c conf.nsrv = 32*mul; conf.nbitmap = 100*mul; conf.nbitbyte = 300*1024*mul; . 292c conf.nstream = 64*mul; . 282,289c conf.norig = 150*mul; conf.nchan = 150*mul; conf.nenv = 100*mul; conf.nenvchar = 8000*mul; conf.npgenv = 200*mul; conf.nmtab = 50*mul; conf.nmount = 100*mul; conf.nmntdev = 10*mul; . 279,280c mul = 1 + (conf.npage0>0); conf.nproc = 32*mul; conf.npgrp = 15*mul; conf.npte = 700*mul; conf.nmod = 400*mul; . 270,271d 266a int mul; . ## diffname gnot/main.c 1990/06111 ## diff -e /n/bootesdump/1990/0603/sys/src/9/68020/main.c /n/bootesdump/1990/06111/sys/src/9/68020/main.c 299c conf.nbitbyte = 300*1024*mul*mul; . ## diffname gnot/main.c 1990/0612 ## diff -e /n/bootesdump/1990/06111/sys/src/9/68020/main.c /n/bootesdump/1990/0612/sys/src/9/68020/main.c 278c mul = 1 + (conf.npage1>0); . ## diffname gnot/main.c 1990/0613 ## diff -e /n/bootesdump/1990/0612/sys/src/9/68020/main.c /n/bootesdump/1990/0613/sys/src/9/68020/main.c 256,257c putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG); if(*(ulong*)va == 4) . 254c if(*(ulong*)va == 1) . 251c if(*(ulong*)va == 0) . 249c *(ulong*)va = 4; /* 4 at 4M */ . 247c *(ulong*)va = 1; /* 1 at 1M */ . 245c *(ulong*)va = 0; /* 0 at 0M */ . 97c if(!waserror()){ c = namec("#e/bootline", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, bootline, 64); close(c); } poperror(); . 88a Chan *c; u->nerrlab = 0; . 50a memcpy(bootline, BOOT->line, 64); . 19a char bootline[64]; . 16c }; . 10c typedef struct Boot Boot; struct Boot { . ## diffname gnot/main.c 1990/0614 ## diff -e /n/bootesdump/1990/0613/sys/src/9/68020/main.c /n/bootesdump/1990/0614/sys/src/9/68020/main.c 164c memcpy((ulong*)VA(k), initcode, sizeof initcode); . 143c up = (User*)VA(k); . ## diffname gnot/main.c 1990/0617 ## diff -e /n/bootesdump/1990/0614/sys/src/9/68020/main.c /n/bootesdump/1990/0617/sys/src/9/68020/main.c 292c conf.nproc = 40*mul; . ## diffname gnot/main.c 1990/0623 ## diff -e /n/bootesdump/1990/0617/sys/src/9/68020/main.c /n/bootesdump/1990/0623/sys/src/9/68020/main.c 312a conf.nfont = 10*mul; . ## diffname gnot/main.c 1990/0709 ## diff -e /n/bootesdump/1990/0623/sys/src/9/68020/main.c /n/bootesdump/1990/0709/sys/src/9/68020/main.c 312c conf.nbitbyte = 300*1024*mul; if(*(uchar*)MOUSE & (1<<4)) conf.nbitbyte *= 2; /* ldepth 1 */ . 307c conf.nstream = 64; . 303c conf.nmount = 80*mul; . 293c conf.npgrp = 12*mul; . ## diffname gnot/main.c 1990/0717 ## diff -e /n/bootesdump/1990/0709/sys/src/9/68020/main.c /n/bootesdump/1990/0717/sys/src/9/68020/main.c 315a conf.nurp = 32; . ## diffname gnot/main.c 1990/0721 ## diff -e /n/bootesdump/1990/0717/sys/src/9/68020/main.c /n/bootesdump/1990/0721/sys/src/9/68020/main.c 298c conf.nchan = 200*mul; . 292c conf.nproc = 50*mul; . ## diffname gnot/main.c 1990/0722 ## diff -e /n/bootesdump/1990/0721/sys/src/9/68020/main.c /n/bootesdump/1990/0722/sys/src/9/68020/main.c 309c conf.nblock = 24 * conf.nstream; . ## diffname gnot/main.c 1990/0724 ## diff -e /n/bootesdump/1990/0722/sys/src/9/68020/main.c /n/bootesdump/1990/0724/sys/src/9/68020/main.c 311c conf.nbitmap = 300*mul; . ## diffname gnot/main.c 1990/0802 ## diff -e /n/bootesdump/1990/0724/sys/src/9/68020/main.c /n/bootesdump/1990/0802/sys/src/9/68020/main.c 162a s->o->npage = 1; . ## diffname gnot/main.c 1990/08163 ## diff -e /n/bootesdump/1990/0802/sys/src/9/68020/main.c /n/bootesdump/1990/08163/sys/src/9/68020/main.c 128,129c p->fpstate = FPinit; . 66a m->fpstate = FPinit; fprestore((FPsave*)&fpnull); . 61a long fpnull = 0; . ## diffname gnot/main.c 1990/0905 ## diff -e /n/bootesdump/1990/08163/sys/src/9/68020/main.c /n/bootesdump/1990/0905/sys/src/9/68020/main.c 69c fprestore(&initfp); . 62d ## diffname gnot/main.c 1990/0911 ## diff -e /n/bootesdump/1990/0905/sys/src/9/68020/main.c /n/bootesdump/1990/0911/sys/src/9/68020/main.c 318a conf.nasync = 1; . 311c conf.nblock = 32 * conf.nstream; . ## diffname gnot/main.c 1990/0917 ## diff -e /n/bootesdump/1990/0911/sys/src/9/68020/main.c /n/bootesdump/1990/0917/sys/src/9/68020/main.c 109a close(c); c = namec("#e/bootdevice", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, bootdevice, 2); . 55a bootdevice[0] = BOOT->device; . 23a char bootdevice[2]; . 18a char device; . ## diffname gnot/main.c 1990/0918 ## diff -e /n/bootesdump/1990/0917/sys/src/9/68020/main.c /n/bootesdump/1990/0918/sys/src/9/68020/main.c 112a close(c); c = namec("#e/bootserver", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, bootserver, 64); . 57a memcpy(bootserver, BOOT->server, 64); . 24a char bootserver[64]; . ## diffname gnot/main.c 1990/0921 ## diff -e /n/bootesdump/1990/0918/sys/src/9/68020/main.c /n/bootesdump/1990/0921/sys/src/9/68020/main.c 156a up->mc.next = 0; . 33a u = 0; . ## diffname gnot/main.c 1990/0928 ## diff -e /n/bootesdump/1990/0921/sys/src/9/68020/main.c /n/bootesdump/1990/0928/sys/src/9/68020/main.c 158d ## diffname gnot/main.c 1990/1004 ## diff -e /n/bootesdump/1990/0928/sys/src/9/68020/main.c /n/bootesdump/1990/1004/sys/src/9/68020/main.c 182a m->proc = p; . 149c p->sched.sr = SUPER|SPL(0); . 142d 104,108c restore(); . ## diffname gnot/main.c 1990/1006 ## diff -e /n/bootesdump/1990/1004/sys/src/9/68020/main.c /n/bootesdump/1990/1006/sys/src/9/68020/main.c 327a conf.npipe = conf.nstream/2; . ## diffname gnot/main.c 1990/1104 ## diff -e /n/bootesdump/1990/1006/sys/src/9/68020/main.c /n/bootesdump/1990/1104/sys/src/9/68020/main.c 328a conf.nservice = conf.nproc/5; . 48a serviceinit(); . ## diffname gnot/main.c 1990/1110 ## diff -e /n/bootesdump/1990/1104/sys/src/9/68020/main.c /n/bootesdump/1990/1110/sys/src/9/68020/main.c 330a conf.nfsyschan = 31 + conf.nchan/20; . 49a filsysinit(); . ## diffname gnot/main.c 1990/1115 ## diff -e /n/bootesdump/1990/1110/sys/src/9/68020/main.c /n/bootesdump/1990/1115/sys/src/9/68020/main.c 331c conf.nservice = 3*mul; /* was conf.nproc/5 */ . 319,322c conf.nstream = 40 + 16*mul; /* was 64 */ conf.nqueue = 4 * conf.nstream; /* was 5 */ conf.nblock = 24 * conf.nstream; /* was 32 */ conf.nsrv = 16*mul; /* was 32 */ . ## diffname gnot/main.c 1990/11151 ## diff -e /n/bootesdump/1990/1115/sys/src/9/68020/main.c /n/bootesdump/1990/11151/sys/src/9/68020/main.c 320c conf.nqueue = 5 * conf.nstream; . ## diffname gnot/main.c 1990/11211 ## diff -e /n/bootesdump/1990/11151/sys/src/9/68020/main.c /n/bootesdump/1990/11211/sys/src/9/68020/main.c 139c strcpy(p->pgrp->user, user); . 60c strncpy(user, BOOT->user, NAMELEN); . 49,50c /* serviceinit(); /**/ /* filsysinit(); /**/ . 23c char user[NAMELEN]; . ## diffname gnot/main.c 1990/1127 ## diff -e /n/bootesdump/1990/11211/sys/src/9/68020/main.c /n/bootesdump/1990/1127/sys/src/9/68020/main.c 321c conf.nblock = 24 * conf.nstream; . 319c conf.nstream = 40 + 32*mul; . 317c conf.nmntbuf = conf.nmntdev; . ## diffname gnot/main.c 1990/1128 ## diff -e /n/bootesdump/1990/1127/sys/src/9/68020/main.c /n/bootesdump/1990/1128/sys/src/9/68020/main.c 317c conf.nmntbuf = conf.nmntdev+3; . ## diffname gnot/main.c 1990/1211 ## diff -e /n/bootesdump/1990/1128/sys/src/9/68020/main.c /n/bootesdump/1990/1211/sys/src/9/68020/main.c 332a } /* * set up floating point for a new process */ void setup(Proc *p) { long fpnull; fpnull = 0; splhi(); m->fpstate = FPinit; p->fpstate = FPinit; fprestore((FPsave*)&fpnull); spllo(); } /* * Save the part of the process state. */ void save(uchar *state, int len) { Balu *balu; if(len < sizeof(Balu)) panic("save state too small"); balu = (Balu *)state; fpsave(&u->fpsave); if(u->fpsave.type){ if(u->fpsave.size > sizeof u->fpsave.junk) panic("fpsize %d max %d\n", u->fpsave.size, sizeof u->fpsave.junk); fpregsave(u->fpsave.reg); u->p->fpstate = FPactive; m->fpstate = FPdirty; } if(BALU->cr0 != 0xFFFFFFFF) /* balu busy */ memcpy(balu, BALU, sizeof(Balu)); else{ balu->cr0 = 0xFFFFFFFF; BALU->cr0 = 0xFFFFFFFF; } } /* * Restore what save() saves * * Save() makes sure that what state points to is long enough */ void restore(Proc *p, uchar *state) { Balu *balu; balu = (Balu *)state; if(p->fpstate != m->fpstate){ if(p->fpstate == FPinit){ u->p->fpstate = FPinit; fprestore(&initfp); m->fpstate = FPinit; }else{ fpregrestore(u->fpsave.reg); fprestore(&u->fpsave); m->fpstate = FPdirty; } } if(balu->cr0 != 0xFFFFFFFF) /* balu busy */ memcpy(BALU, balu, sizeof balu); . 302a conf.maxialloc = (4*1024*1024-256*1024-BY2PG); . 180d 139a p->fpstate = FPinit; . 106c u->nerrlab = 0; m->proc = u->p; u->p->state = Running; u->p->mach = m; spllo(); . 9a #include #include . ## diffname gnot/main.c 1990/1212 ## diff -e /n/bootesdump/1990/1211/sys/src/9/68020/main.c /n/bootesdump/1990/1212/sys/src/9/68020/main.c 393c procrestore(Proc *p, uchar *state) . 390c * Procsave() makes sure that what state points to is long enough . 388c * Restore what procsave() saves . 364c procsave(uchar *state, int len) . 348c procsetup(Proc *p) . 341a conf.copymode = 0; /* copy on write */ . ## diffname gnot/main.c 1991/0110 ## diff -e /n/bootesdump/1990/1212/sys/src/9/68020/main.c /n/bootesdump/1991/0110/sys/src/9/68020/main.c 342a conf.portispaged = 0; . ## diffname gnot/main.c 1991/0115 ## diff -e /n/bootesdump/1991/0110/sys/src/9/68020/main.c /n/bootesdump/1991/0115/sys/src/9/68020/main.c 326c conf.nmntbuf = conf.nmntdev+6; . ## diffname gnot/main.c 1991/0117 ## diff -e /n/bootesdump/1991/0115/sys/src/9/68020/main.c /n/bootesdump/1991/0117/sys/src/9/68020/main.c 326c conf.nmntbuf = conf.nmntdev+3; . ## diffname gnot/main.c 1991/0118 ## diff -e /n/bootesdump/1991/0117/sys/src/9/68020/main.c /n/bootesdump/1991/0118/sys/src/9/68020/main.c 326c conf.nmntbuf = conf.nmntdev+5; . ## diffname gnot/main.c 1991/0205 ## diff -e /n/bootesdump/1991/0201/sys/src/9/68020/main.c /n/bootesdump/1991/0205/sys/src/9/gnot/main.c 314c conf.npgrp = 20*mul; . ## diffname gnot/main.c 1991/0318 ## diff -e /n/bootesdump/1991/0205/sys/src/9/gnot/main.c /n/bootesdump/1991/0318/sys/src/9/gnot/main.c 412c memmove(BALU, balu, sizeof balu); . 382c memmove(balu, BALU, sizeof(Balu)); . 184c memmove((ulong*)VA(k), initcode, sizeof initcode); . 64,65c memmove(bootline, BOOT->line, 64); memmove(bootserver, BOOT->server, 64); . ## diffname gnot/main.c 1991/0411 ## diff -e /n/bootesdump/1991/0318/sys/src/9/gnot/main.c /n/bootesdump/1991/0411/sys/src/9/gnot/main.c 127c (*devtab[c->type].write)(c, bootdevice, 2, 0); . 124c (*devtab[c->type].write)(c, bootserver, 64, 0); . 121c (*devtab[c->type].write)(c, bootline, 64, 0); . ## diffname gnot/main.c 1991/0428 ## diff -e /n/bootesdump/1991/0411/sys/src/9/gnot/main.c /n/bootesdump/1991/0428/sys/src/9/gnot/main.c 77d ## diffname gnot/main.c 1991/0605 ## diff -e /n/bootesdump/1991/0428/sys/src/9/gnot/main.c /n/bootesdump/1991/0605/sys/src/9/gnot/main.c 411a } void buzz(int f, int d) { } void lights(int val) { } void firmware(void) { panic("you asked for it"); . 42a duartinit(); screeninit(); . ## diffname gnot/main.c 1991/0608 ## diff -e /n/bootesdump/1991/0605/sys/src/9/gnot/main.c /n/bootesdump/1991/0608/sys/src/9/gnot/main.c 424,429d 344a conf.cntrlp = 0; . 200,202c firmware(); . 198a spllo(); while(consactive()) for(i=0; i<1000; i++) ; . ## diffname gnot/main.c 1991/0705 ## diff -e /n/bootesdump/1991/0608/sys/src/9/gnot/main.c /n/bootesdump/1991/0705/sys/src/9/gnot/main.c 321d 318,319d 316a conf.nseg = conf.nproc*4; conf.npagetab = conf.nseg*2; conf.nswap = 4096; conf.nimage = 50; . 292c putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG, 0); . 289c putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG, 0); . 286c putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG, 0); . 284c putmmu(va, PTEVALID|(base+4)*1024L*1024L/BY2PG, 0); . 282c putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG, 0); . 280c putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG, 0); . 187,188d 179,184c s = newseg(SG_TEXT, UTZERO, 1); p->seg[TSEG] = s; segpage(s, newpage(1, 0, UTZERO)); k = kmap(s->map[0]->pages[0]); . 170,174c s = newseg(SG_STACK, USTKTOP-BY2PG, 1); p->seg[SSEG] = s; . 157c p->upage = newpage(1, 0, USERADDR|(p->pid&0xFFFF)); . 150d 146a p->egrp = newegrp(); p->fgrp = newfgrp(); . 141c Segment *s; . 131a kickpager(); . 92c putmmu(l, INVALIDPTE, 0); . 55a swapinit(); . 49c initseg(); grpinit(); . ## diffname gnot/main.c 1991/0710 ## diff -e /n/bootesdump/1991/0705/sys/src/9/gnot/main.c /n/bootesdump/1991/0710/sys/src/9/gnot/main.c 206,271d ## diffname gnot/main.c 1991/0711 ## diff -e /n/bootesdump/1991/0710/sys/src/9/gnot/main.c /n/bootesdump/1991/0711/sys/src/9/gnot/main.c 161c p->sched.sp = USERADDR+BY2PG-MAXSYSARG*BY2WD; . ## diffname gnot/main.c 1991/0717 ## diff -e /n/bootesdump/1991/0711/sys/src/9/gnot/main.c /n/bootesdump/1991/0717/sys/src/9/gnot/main.c 135d ## diffname gnot/main.c 1991/0719 ## diff -e /n/bootesdump/1991/0717/sys/src/9/gnot/main.c /n/bootesdump/1991/0719/sys/src/9/gnot/main.c 160c p->sched.sp = USERADDR+BY2PG-5*BY2WD; . ## diffname gnot/main.c 1991/0906 ## diff -e /n/bootesdump/1991/0719/sys/src/9/gnot/main.c /n/bootesdump/1991/0906/sys/src/9/gnot/main.c 155a . 154c strcpy(p->pgrp->user, "bootes"); strcpy(user, "bootes"); . 122a c = namec("#e/bootuser", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, bootuser, 64, 0); close(c); . 67c strncpy(bootuser, BOOT->user, NAMELEN); . 26c char user[NAMELEN]; char bootuser[NAMELEN]; . ## diffname gnot/main.c 1991/0907 ## diff -e /n/bootesdump/1991/0906/sys/src/9/gnot/main.c /n/bootesdump/1991/0907/sys/src/9/gnot/main.c 131c (*devtab[c->type].write)(c, bootserver, strlen(bootuser), 0); . 125c (*devtab[c->type].write)(c, bootuser, strlen(bootuser), 0); . ## diffname gnot/main.c 1991/0912 ## diff -e /n/bootesdump/1991/0907/sys/src/9/gnot/main.c /n/bootesdump/1991/0912/sys/src/9/gnot/main.c 134c (*devtab[c->type].write)(c, bootdevice, strlen(bootdevice), 0); . 131c (*devtab[c->type].write)(c, bootserver, strlen(bootserver), 0); . 128c (*devtab[c->type].write)(c, bootline, strlen(bootline), 0); . ## diffname gnot/main.c 1991/0926 ## diff -e /n/bootesdump/1991/0912/sys/src/9/gnot/main.c /n/bootesdump/1991/0926/sys/src/9/gnot/main.c 137d 135a poperror(); . 123a c = namec("#e/terminal", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, "at&t gnot 1", strlen("at&t gnot 1"), 0); close(c); c = namec("#e/cputype", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, "68020", strlen("68020"), 0); close(c); . ## diffname gnot/main.c 1991/0927 ## diff -e /n/bootesdump/1991/0926/sys/src/9/gnot/main.c /n/bootesdump/1991/0927/sys/src/9/gnot/main.c 124,141c ksetenv("terminal", "at&t gnot 1"); ksetenv("cputype", "68020"); ksetenv("bootuser", bootuser); ksetenv("bootline", bootline); ksetenv("bootserver", bootserver); ksetenv("bootdevice", bootdevice); . ## diffname gnot/main.c 1991/1101 ## diff -e /n/bootesdump/1991/0927/sys/src/9/gnot/main.c /n/bootesdump/1991/1101/sys/src/9/gnot/main.c 124c ksetenv("terminal", "at&t gnot"); . ## diffname gnot/main.c 1991/1102 ## diff -e /n/bootesdump/1991/1101/sys/src/9/gnot/main.c /n/bootesdump/1991/1102/sys/src/9/gnot/main.c 124c ksetterm("at&t %s"); . ## diffname gnot/main.c 1991/1105 ## diff -e /n/bootesdump/1991/1102/sys/src/9/gnot/main.c /n/bootesdump/1991/1105/sys/src/9/gnot/main.c 152c strcpy(p->user, "bootes"); . ## diffname gnot/main.c 1991/1107 ## diff -e /n/bootesdump/1991/1105/sys/src/9/gnot/main.c /n/bootesdump/1991/1107/sys/src/9/gnot/main.c 280a conf.dkif = 2; . ## diffname gnot/main.c 1991/1109 ## diff -e /n/bootesdump/1991/1107/sys/src/9/gnot/main.c /n/bootesdump/1991/1109/sys/src/9/gnot/main.c 152,153c strcpy(p->user, eve); . 26d ## diffname gnot/main.c 1991/1112 ## diff -e /n/bootesdump/1991/1109/sys/src/9/gnot/main.c /n/bootesdump/1991/1112/sys/src/9/gnot/main.c 148a p->procmode = 0640; . ## diffname gnot/main.c 1991/1113 ## diff -e /n/bootesdump/1991/1112/sys/src/9/gnot/main.c /n/bootesdump/1991/1113/sys/src/9/gnot/main.c 39a active.exiting = 0; active.machs = 1; . ## diffname gnot/main.c 1991/1114 ## diff -e /n/bootesdump/1991/1113/sys/src/9/gnot/main.c /n/bootesdump/1991/1114/sys/src/9/gnot/main.c 270a conf.nmux = 10; . ## diffname gnot/main.c 1992/0122 ## diff -e /n/bootesdump/1991/1114/sys/src/9/gnot/main.c /n/bootesdump/1992/0122/sys/src/9/gnot/main.c 352c memmove(BALU, balu, sizeof BALU); . 339d 337c Balu *balu = (Balu *)u->balusave; . 335c procrestore(Proc *p) . 310,312d 308c Balu *balu = (Balu *)u->balusave; . 306c procsave(Proc *p) . ## diffname gnot/main.c 1992/0208 ## diff -e /n/bootesdump/1992/0122/sys/src/9/gnot/main.c /n/bootesdump/1992/0208/sys/src/9/gnot/main.c 274c conf.nsubfont = 10*mul; . ## diffname gnot/main.c 1992/0209 ## diff -e /n/bootesdump/1992/0208/sys/src/9/gnot/main.c /n/bootesdump/1992/0209/sys/src/9/gnot/main.c 274a conf.nfont = 10*mul; . 10c #include . ## diffname gnot/main.c 1992/0211 ## diff -e /n/bootesdump/1992/0209/sys/src/9/gnot/main.c /n/bootesdump/1992/0211/sys/src/9/gnot/main.c 10c #include . ## diffname gnot/main.c 1992/0318 ## diff -e /n/bootesdump/1992/0211/sys/src/9/gnot/main.c /n/bootesdump/1992/0318/sys/src/9/gnot/main.c 189a } uchar * pusharg(char *p) { int n; n = strlen(p)+1; sp -= n; memmove(sp, p, n); return sp; } void bootargs(ulong base) { int i, ac; uchar *av[32]; char *p, *pp; uchar **lsp; sp = (uchar*)base + BY2PG - MAXSYSARG*BY2WD; ac = 0; for(p = bootline; p && *p; p = pp){ pp = strchr(p, ' '); if(pp) *pp++ = 0; av[ac++] = pusharg(p); } if(bootuser[0]){ av[ac++] = pusharg("-u"); av[ac++] = pusharg(bootuser); } av[ac++] = pusharg(bootserver); /* 4 byte word align stack */ sp = (uchar*)((ulong)sp & ~3); /* build argc, argv on stack */ sp -= (ac+1)*sizeof(sp); lsp = (uchar**)sp; for(i = 0; i < ac; i++) *lsp++ = av[i] + ((USTKTOP - BY2PG) - base); *lsp = 0; sp += (USTKTOP - BY2PG) - base - sizeof(sp); . 177a pg = newpage(1, 0, USTKTOP-BY2PG); segpage(s, pg); k = kmap(pg); bootargs(VA(k)); kunmap(k); . 174c * User Stack, copy in boot arguments . 145a Page *pg; . 134c touser(sp); . 127,130d 71,72c memmove(s, BOOT->server, 64); switch(BOOT->device){ case 'a': sprint(bootserver, "19200!%s", s); break; case 'A': sprint(bootserver, "9600!%s", s); break; case 'i': sprint(bootserver, "incon!%s", s); break; default: sprint(bootserver, "scsi!%s", s); break; } . 68a char s[64]; . 26,30c char bootuser[NAMELEN]; char bootline[64]; char bootserver[72]; int bank[2]; uchar *sp; . 14d ## diffname gnot/main.c 1992/0320 ## diff -e /n/bootesdump/1992/0318/sys/src/9/gnot/main.c /n/bootesdump/1992/0320/sys/src/9/gnot/main.c 272c if(end > (char *)((KZERO|1024L*1024L)-BY2PG)) . ## diffname gnot/main.c 1992/0321 ## diff -e /n/bootesdump/1992/0320/sys/src/9/gnot/main.c /n/bootesdump/1992/0321/sys/src/9/gnot/main.c 2c #include "../port/lib.h" . ## diffname gnot/main.c 1992/0325 ## diff -e /n/bootesdump/1992/0321/sys/src/9/gnot/main.c /n/bootesdump/1992/0325/sys/src/9/gnot/main.c 83a /* older boot ROM's don't zero out BOOT->user if it isn't set. */ memset(bootuser, 0, sizeof(bootuser)); . 70,72c memmove(bootuser, BOOT->user, sizeof(bootuser)-1); bootuser[sizeof(bootuser)-1] = 0; memmove(bootline, BOOT->line, sizeof(bootline)-1); bootline[sizeof(bootline)-1] = 0; memmove(s, BOOT->server, sizeof(s) - 1); s[sizeof(s)-1] = 0; . ## diffname gnot/main.c 1992/0427 ## diff -e /n/bootesdump/1992/0325/sys/src/9/gnot/main.c /n/bootesdump/1992/0427/sys/src/9/gnot/main.c 341c conf.nsubfont = 30*mul; . ## diffname gnot/main.c 1992/0516 ## diff -e /n/bootesdump/1992/0427/sys/src/9/gnot/main.c /n/bootesdump/1992/0516/sys/src/9/gnot/main.c 142a kproc("alarm", alarmkproc, 0); chandevinit(); . 138,139d ## diffname gnot/main.c 1992/0602 ## diff -e /n/bootesdump/1992/0516/sys/src/9/gnot/main.c /n/bootesdump/1992/0602/sys/src/9/gnot/main.c 53d ## diffname gnot/main.c 1992/0611 ## diff -e /n/bootesdump/1992/0602/sys/src/9/gnot/main.c /n/bootesdump/1992/0611/sys/src/9/gnot/main.c 352a confinit1(mul); . ## diffname gnot/main.c 1992/0621 ## diff -e /n/bootesdump/1992/0611/sys/src/9/gnot/main.c /n/bootesdump/1992/0621/sys/src/9/gnot/main.c 352a . 346,348d 335d 328,332d 322,324d 318,319d 315c conf.upages = (conf.npage*70)/100; . ## diffname gnot/main.c 1992/0622 ## diff -e /n/bootesdump/1992/0621/sys/src/9/gnot/main.c /n/bootesdump/1992/0622/sys/src/9/gnot/main.c 330,333d 326,328d 312,313c conf.npage1 = (bank[1]*MB)/BY2PG; conf.base1 = 16*MB; . 310c conf.npage0 = (bank[0]*MB)/BY2PG; . 293c putmmu(va, PTEVALID|(base+0)*MB/BY2PG, 0); . 290c putmmu(va, PTEVALID|(base+1)*MB/BY2PG, 0); . 287c putmmu(va, PTEVALID|(base+0)*MB/BY2PG, 0); . 285c putmmu(va, PTEVALID|(base+4)*MB/BY2PG, 0); . 283c putmmu(va, PTEVALID|(base+1)*MB/BY2PG, 0); . 281c putmmu(va, PTEVALID|(base+0)*MB/BY2PG, 0); . 55,56d ## diffname gnot/main.c 1992/0623 ## diff -e /n/bootesdump/1992/0622/sys/src/9/gnot/main.c /n/bootesdump/1992/0623/sys/src/9/gnot/main.c 164,165c p->egrp = smalloc(sizeof(Egrp)); p->egrp->ref = 1; p->fgrp = smalloc(sizeof(Fgrp)); p->fgrp->ref = 1; . ## diffname gnot/main.c 1992/0625 ## diff -e /n/bootesdump/1992/0623/sys/src/9/gnot/main.c /n/bootesdump/1992/0625/sys/src/9/gnot/main.c 332d 321,328d 56d 51,52d 48a pageinit(); . 42a xinit(); . ## diffname gnot/main.c 1992/0629 ## diff -e /n/bootesdump/1992/0625/sys/src/9/gnot/main.c /n/bootesdump/1992/0629/sys/src/9/gnot/main.c 322a conf.nconc = 2; . ## diffname gnot/main.c 1992/0630 ## diff -e /n/bootesdump/1992/0629/sys/src/9/gnot/main.c /n/bootesdump/1992/0630/sys/src/9/gnot/main.c 119a l = PGROUND((ulong)end); gscreen.base = (ulong*)l; . 118c * Screen after end . 115c for(i=1,l=KTZERO; i