| plan 9 kernel history: overview | file list | diff list |
1990/1227/ss/main.c (diff list | history)
| 1990/1223/sys/src/9/ss/main.c:14,23 – 1990/1226/sys/src/9/ss/main.c:14,24 (short | long) | ||
| 1990/1223 | char bootline[64]; char bootserver[64]; char bootdevice[64]; | |
| 1990/1226 | #ifdef asdf static int ok; | |
| 1990/1223 | int Xprint(char *fmt, ...) { | |
| 1990/1223/sys/src/9/ss/main.c:24,29 – 1990/1226/sys/src/9/ss/main.c:25,34 | ||
| 1990/1223 | char buf[PRINTSIZE]; int n; | |
| 1990/1226 | if(!ok){ sccsetup(); ok = 1; } | |
| 1990/1223 | n = doprint(buf, buf+sizeof(buf), fmt, (&fmt+1)) - buf; sccputs(buf); return n; | |
| 1990/1223/sys/src/9/ss/main.c:34,39 – 1990/1226/sys/src/9/ss/main.c:39,48 | ||
| 1990/1223 | { int i; | |
| 1990/1226 | if(!ok){ sccsetup(); ok = 1; } | |
| 1990/1223 | for(i=0; i<8; i++){ sccputc("0123456789ABCDEF"[x>>28]); x <<= 4; | |
| 1990/1223/sys/src/9/ss/main.c:40,45 – 1990/1226/sys/src/9/ss/main.c:49,55 | ||
| 1990/1223 | } sccputc('\n'); } | |
| 1990/1226 | #endif | |
| 1990/1223 | void main(void) | |
| 1990/1223/sys/src/9/ss/main.c:51,67 – 1990/1226/sys/src/9/ss/main.c:61,73 | ||
| 1990/1223 | unloadboot(); machinit(); | |
| 1990/1226 | mmuinit(); printinit(); print("sparc plan 9\n"); trapinit(); | |
| 1990/1223 | kmapinit(); | |
| 1990/1226 | cacheinit(); | |
| 1990/1223 | procinit0(); pgrpinit(); chaninit(); | |
| 1990/1223/sys/src/9/ss/main.c:71,80 – 1990/1226/sys/src/9/ss/main.c:77,84 | ||
| 1990/1223 | /* serviceinit(); /**/ /* filsysinit(); /**/ pageinit(); | |
| 1990/1223/sys/src/9/ss/main.c:81,87 – 1990/1226/sys/src/9/ss/main.c:85,91 | ||
| 1990/1223 | reset(void) { delay(100); | |
| 1990/1226 | putb2(ENAB, ENABRESET); | |
| 1990/1223 | } void | |
| 1990/1223/sys/src/9/ss/main.c:90,96 – 1990/1226/sys/src/9/ss/main.c:94,100 | ||
| 1990/1223 | strncpy(user, "rob", sizeof user); memcpy(bootline, "9s", sizeof bootline); memcpy(bootserver, "bootes", sizeof bootserver); | |
| 1990/1226 | memcpy(bootdevice, "parnfucky", sizeof bootdevice); | |
| 1990/1223 | } void | |
| 1990/1223/sys/src/9/ss/main.c:109,136 – 1990/1226/sys/src/9/ss/main.c:113,118 | ||
| 1990/1223 | } void | |
| 1990/1223/sys/src/9/ss/main.c:157,163 – 1990/1226/sys/src/9/ss/main.c:139,146 | ||
| 1990/1223 | close(c); } poperror(); | |
| 1990/1226 | touser(USTKTOP-5*BY2WD); | |
| 1990/1223 | } FPsave initfp; | |
| 1990/1223/sys/src/9/ss/main.c:181,187 – 1990/1226/sys/src/9/ss/main.c:164,169 | ||
| 1990/1223 | */ p->sched.pc = (ulong)init0; p->sched.sp = USERADDR+BY2PG-20; /* BUG */ | |
| 1990/1223/sys/src/9/ss/main.c:226,233 – 1990/1226/sys/src/9/ss/main.c:208,216 | ||
| 1990/1223 | u = 0; splhi(); print("exiting\n"); | |
| 1990/1226 | for(;;) delay(60*1000); reset(); | |
| 1990/1223 | } /* | |
| 1990/1223/sys/src/9/ss/main.c:296,326 – 1990/1226/sys/src/9/ss/main.c:279,284 | ||
| 1990/1223 | where->next = old->next; } | |
| 1990/1223/sys/src/9/ss/main.c:327,344 – 1990/1226/sys/src/9/ss/main.c:285,300 | ||
| 1990/1223 | confinit(void) { int mul; | |
| 1990/1226 | ||
| 1990/1223 | conf.nmach = 1; if(conf.nmach > MAXMACH) panic("confinit"); | |
| 1990/1226 | conf.npage0 = (8*1024*1024)/BY2PG; /* BUG */ conf.npage = conf.npage0; | |
| 1990/1223 | conf.base0 = 0; | |
| 1990/1226 | conf.maxialloc = 4*1024*1024; /* BUG */ mul = 2; | |
| 1990/1223 | conf.nproc = 50*mul; conf.npgrp = 12*mul; conf.npte = 700*mul; | |
| 1990/1223/sys/src/9/ss/main.c:360,367 – 1990/1226/sys/src/9/ss/main.c:316,321 | ||
| 1990/1223 | conf.nsrv = 16*mul; /* was 32 */ conf.nbitmap = 300*mul; conf.nbitbyte = 300*1024*mul; | |
| 1990/1223/sys/src/9/ss/main.c:387,393 – 1990/1226/sys/src/9/ss/main.c:341,346 | ||
| 1990/1223 | fprestore((FPsave*)&fpnull); spllo(); #endif | |
| 1990/1223/sys/src/9/ss/main.c:396,408 – 1990/1226/sys/src/9/ss/main.c:349,355 | ||
| 1990/1223 | void procsave(uchar *state, int len) { | |
| 1990/1223/sys/src/9/ss/main.c:411,422 – 1990/1226/sys/src/9/ss/main.c:358,363 | ||
| 1990/1223 | u->p->fpstate = FPactive; m->fpstate = FPdirty; } | |
| 1990/1223/sys/src/9/ss/main.c:428,438 – 1990/1226/sys/src/9/ss/main.c:369,375 | ||
| 1990/1223 | void procrestore(Proc *p, uchar *state) { | |
| 1990/1223/sys/src/9/ss/main.c:444,450 – 1990/1226/sys/src/9/ss/main.c:381,385 | ||
| 1990/1223 | m->fpstate = FPdirty; } } | |
| 1990/1226/sys/src/9/ss/main.c:78,83 – 1990/1227/sys/src/9/ss/main.c:78,89 (short | long) | ||
| 1990/1223 | /* filsysinit(); /**/ pageinit(); userinit(); | |
| 1990/1227 | {KMap *k; k = kmappa(0xF5000000, PTENOCACHE|PTEIO); print("interrupt %ux\n", *(uchar*)k->va); kunmap(k); } clockinit(); | |
| 1990/1223 | schedinit(); } | |
| 1990/1227/sys/src/9/ss/main.c:78,88 – 1990/1231/sys/src/9/ss/main.c:78,83 (short | long) | ||
| 1990/1223 | /* filsysinit(); /**/ pageinit(); userinit(); | |
| 1990/1227 |
| |
| 1990/1223 | schedinit(); } | |
| 1990/1227/sys/src/9/ss/main.c:323,328 – 1990/1231/sys/src/9/ss/main.c:318,325 | ||
| 1990/1223 | conf.nbitmap = 300*mul; conf.nbitbyte = 300*1024*mul; conf.nfont = 10*mul; | |
| 1990/1231 | conf.nnoifc = 1; conf.nnoconv = 32; | |
| 1990/1223 | conf.nurp = 32; conf.nasync = 1; conf.npipe = conf.nstream/2; | |
| 1990/1227/sys/src/9/ss/main.c:329,334 – 1990/1231/sys/src/9/ss/main.c:326,389 | ||
| 1990/1223 | conf.nservice = 3*mul; /* was conf.nproc/5 */ conf.nfsyschan = 31 + conf.nchan/20; conf.copymode = 0; /* copy on write */ | |
| 1990/1231 | } /* * set up the lance */ void lancesetup(Lance *lp) { KMap *k; ushort *sp; uchar *cp; ulong pa; int i; k = kmappa(0xF8400000, PTEIO|PTENOCACHE); print("dma reg %lux\n", *(ulong*)k->va); kunmap(k); k = kmappa(ETHER, PTEIO|PTENOCACHE); lp->rdp = (void*)(k->va+0); lp->rap = (void*)(k->va+2); k = kmappa(EEPROM, PTEIO|PTENOCACHE); cp = (uchar*)(k->va+0x7da); for(i=0; i<6; i++) lp->ea[i] = *cp++; kunmap(k); lp->lognrrb = 1; /* should be larger */ lp->logntrb = 1; /* should be larger */ lp->nrrb = 1<<lp->lognrrb; lp->ntrb = 1<<lp->logntrb; lp->sep = 1; /* * allocate area for lance init block and descriptor rings */ pa = (ulong)ialloc(BY2PG, 1)&~KZERO; /* one whole page */ k = kmappa(pa, PTEMAINMEM|PTENOCACHE); lp->lanceram = (ushort*)k->va; lp->lm = (Lancemem*)k->va; print("lm %lux %lux\n", k->va, k->pa); /* * Allocate space in host memory for the io buffers. */ i = lp->nrrb*sizeof(Etherpkt); i = (i+(BY2PG-1))/BY2PG; if(i != 1) panic("lancesetup"); pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO; k = kmappa(pa, PTEMAINMEM|PTENOCACHE); lp->lrp = (Etherpkt*)k->va; lp->rp = (Etherpkt*)k->va; pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO; k = kmappa(pa, PTEMAINMEM|PTENOCACHE); lp->ltp = (Etherpkt*)k->va; lp->tp = (Etherpkt*)k->va; | |
| 1990/1223 | } /* | |
| 1990/1231/sys/src/9/ss/main.c:337,349 – 1991/0108/sys/src/9/ss/main.c:337,345 (short | long) | ||
| 1990/1231 | KMap *k; ushort *sp; uchar *cp; | |
| 1991/0108 | ulong pa, pte, va; int i, j; | |
| 1990/1231 |
| |
| 1990/1231/sys/src/9/ss/main.c:353,360 – 1991/0108/sys/src/9/ss/main.c:349,356 | ||
| 1990/1231 | lp->ea[i] = *cp++; kunmap(k); | |
| 1991/0108 | lp->lognrrb = 2; /* should be larger */ lp->logntrb = 2; /* should be larger */ | |
| 1990/1231 | lp->nrrb = 1<<lp->lognrrb; lp->ntrb = 1<<lp->logntrb; | |
| 1990/1231/sys/src/9/ss/main.c:361,389 – 1991/0108/sys/src/9/ss/main.c:357,403 | ||
| 1990/1231 | lp->sep = 1; /* | |
| 1991/0108 | * Allocate area for lance init block and descriptor rings | |
| 1990/1231 | */ pa = (ulong)ialloc(BY2PG, 1)&~KZERO; /* one whole page */ | |
| 1991/0108 | /* map at LANCESEGM */ | |
| 1990/1231 | k = kmappa(pa, PTEMAINMEM|PTENOCACHE); | |
| 1991/0108 | print("init block va %lux\n", k->va); | |
| 1990/1231 | lp->lanceram = (ushort*)k->va; lp->lm = (Lancemem*)k->va; | |
| 1991/0108 | * Allocate space in host memory for the io buffers. * Allocate a block and kmap it page by page. kmap's are initially * in reverse order so rearrange them. | |
| 1990/1231 | */ | |
| 1991/0108 | i = (lp->nrrb+lp->ntrb)*sizeof(Etherpkt); | |
| 1990/1231 | i = (i+(BY2PG-1))/BY2PG; | |
| 1991/0108 | print("%d lance buffers\n", i); | |
| 1990/1231 | pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO; | |
| 1991/0108 | va = 0; for(j=i-1; j>=0; j--){ k = kmappa(pa+j*BY2PG, PTEMAINMEM|PTENOCACHE); if(va){ if(va != k->va+BY2PG) panic("lancesetup va unordered"); va = k->va; } } /* * k->va is the base of the region */ | |
| 1990/1231 | lp->lrp = (Etherpkt*)k->va; lp->rp = (Etherpkt*)k->va; | |
| 1991/0108 | lp->ltp = lp->lrp+lp->nrrb; lp->tp = lp->rp+lp->nrrb; print("rp %lux tp %lux lm %lux\n", lp->rp, lp->tp, lp->lm); print("*rp %lux *tp %lux *lm %lux\n", *(ulong*)lp->rp, *(ulong*)lp->tp, *(ulong*)lp->lm); *(ulong*)lp->rp = 0; k = kmappa(0xF8400000, PTEIO|PTENOCACHE); print("dma %lux %lux\n", k->va, *(ulong*)(k->va+4)); *(ulong*)(k->va+4) = 0; kunmap(k); | |
| 1990/1223 | } /* | |
| 1991/0108/sys/src/9/ss/main.c:92,98 – 1991/0109/sys/src/9/ss/main.c:92,98 (short | long) | ||
| 1990/1223 | void unloadboot(void) { | |
| 1991/0109 | strncpy(user, "bootes", sizeof user); | |
| 1990/1223 | memcpy(bootline, "9s", sizeof bootline); memcpy(bootserver, "bootes", sizeof bootserver); | |
| 1990/1226 | memcpy(bootdevice, "parnfucky", sizeof bootdevice); | |
| 1991/0108/sys/src/9/ss/main.c:157,163 – 1991/0109/sys/src/9/ss/main.c:157,162 | ||
| 1990/1223 | p = newproc(); p->pgrp = newpgrp(); strcpy(p->text, "*init*"); | |
| 1991/0108/sys/src/9/ss/main.c:340,360 – 1991/0109/sys/src/9/ss/main.c:339,359 | ||
| 1991/0108 | ulong pa, pte, va; int i, j; | |
| 1990/1231 |
| |
| 1991/0109 | k = kmappa(ETHER, PTEIO); | |
| 1990/1231 | lp->rdp = (void*)(k->va+0); lp->rap = (void*)(k->va+2); | |
| 1991/0109 | k = kmappa(EEPROM, PTEIO); | |
| 1990/1231 | cp = (uchar*)(k->va+0x7da); for(i=0; i<6; i++) lp->ea[i] = *cp++; kunmap(k); | |
| 1991/0108 |
| |
| 1991/0109 | lp->lognrrb = 5; lp->logntrb = 5; | |
| 1990/1231 | lp->nrrb = 1<<lp->lognrrb; lp->ntrb = 1<<lp->logntrb; | |
| 1991/0109 | lp->busctl = BSWP | ACON | BCON; | |
| 1990/1231 | /* | |
| 1991/0108 | * Allocate area for lance init block and descriptor rings | |
| 1991/0108/sys/src/9/ss/main.c:361,367 – 1991/0109/sys/src/9/ss/main.c:360,366 | ||
| 1990/1231 | */ pa = (ulong)ialloc(BY2PG, 1)&~KZERO; /* one whole page */ | |
| 1991/0108 | /* map at LANCESEGM */ | |
| 1990/1231 |
| |
| 1991/0109 | k = kmappa(pa, PTEMAINMEM); | |
| 1991/0108 | print("init block va %lux\n", k->va); | |
| 1990/1231 | lp->lanceram = (ushort*)k->va; lp->lm = (Lancemem*)k->va; | |
| 1991/0108/sys/src/9/ss/main.c:377,383 – 1991/0109/sys/src/9/ss/main.c:376,382 | ||
| 1990/1231 | pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO; | |
| 1991/0108 | va = 0; for(j=i-1; j>=0; j--){ | |
| 1991/0109 | k = kmappa(pa+j*BY2PG, PTEMAINMEM); | |
| 1991/0108 | if(va){ if(va != k->va+BY2PG) panic("lancesetup va unordered"); | |
| 1991/0108/sys/src/9/ss/main.c:391,403 – 1991/0109/sys/src/9/ss/main.c:390,395 | ||
| 1990/1231 | lp->rp = (Etherpkt*)k->va; | |
| 1991/0108 | lp->ltp = lp->lrp+lp->nrrb; lp->tp = lp->rp+lp->nrrb; | |
| 1990/1223 | } /* | |
| 1991/0109/sys/src/9/ss/main.c:15,20 – 1991/0110/sys/src/9/ss/main.c:15,22 (short | long) | ||
| 1990/1223 | char bootserver[64]; char bootdevice[64]; | |
| 1991/0110 | uchar *intrreg; | |
| 1990/1223 | void unloadboot(void); | |
| 1990/1226 | #ifdef asdf | |
| 1991/0109/sys/src/9/ss/main.c:68,73 – 1991/0110/sys/src/9/ss/main.c:70,76 | ||
| 1990/1226 | trapinit(); | |
| 1990/1223 | kmapinit(); | |
| 1990/1226 | cacheinit(); | |
| 1991/0110 | intrinit(); | |
| 1990/1223 | procinit0(); pgrpinit(); chaninit(); | |
| 1991/0109/sys/src/9/ss/main.c:83,88 – 1991/0110/sys/src/9/ss/main.c:86,100 | ||
| 1990/1223 | } void | |
| 1991/0110 | intrinit(void) { KMap *k; k = kmappa(INTRREG, PTEIO); intrreg = (uchar*)k->va; } void | |
| 1990/1223 | reset(void) { delay(100); | |
| 1991/0109/sys/src/9/ss/main.c:162,168 – 1991/0110/sys/src/9/ss/main.c:174,180 | ||
| 1990/1223 | /* * Kernel Stack */ | |
| 1991/0110 | p->sched.pc = (((ulong)init0) - 8); /* 8 because of RETURN in gotolabel */ | |
| 1990/1223 | p->sched.sp = USERADDR+BY2PG-20; /* BUG */ p->upage = newpage(0, 0, USERADDR|(p->pid&0xFFFF)); | |
| 1991/0109/sys/src/9/ss/main.c:289,295 – 1991/0110/sys/src/9/ss/main.c:301,307 | ||
| 1990/1223 | conf.nmach = 1; if(conf.nmach > MAXMACH) panic("confinit"); | |
| 1990/1226 |
| |
| 1991/0110 | conf.npage0 = (6*1024*1024)/BY2PG; /* BUG */ | |
| 1990/1226 | conf.npage = conf.npage0; | |
| 1990/1223 | conf.base0 = 0; conf.npage = conf.npage0+conf.npage1; | |
| 1991/0109/sys/src/9/ss/main.c:297,304 – 1991/0110/sys/src/9/ss/main.c:309,316 | ||
| 1990/1226 | mul = 2; | |
| 1990/1223 | conf.nproc = 50*mul; conf.npgrp = 12*mul; | |
| 1991/0110 | conf.npte = 1400*mul; conf.nmod = 800*mul; | |
| 1990/1223 | conf.nalarm = 1000; conf.norig = 150*mul; conf.nchan = 200*mul; | |
| 1991/0110/sys/src/9/ss/main.c:66,74 – 1991/0111/sys/src/9/ss/main.c:66,75 (short | long) | ||
| 1990/1223 | confinit(); | |
| 1990/1226 | mmuinit(); printinit(); | |
| 1991/0111 | print("sparc plan 9 %lux\n", getb2(ENAB)); | |
| 1990/1226 | trapinit(); | |
| 1990/1223 | kmapinit(); | |
| 1991/0111 | print("sparc plan 9 %lux\n", getb2(ENAB)); | |
| 1990/1226 | cacheinit(); | |
| 1991/0110 | intrinit(); | |
| 1990/1223 | procinit0(); | |
| 1991/0110/sys/src/9/ss/main.c:220,227 – 1991/0111/sys/src/9/ss/main.c:221,227 | ||
| 1990/1223 | u = 0; splhi(); print("exiting\n"); | |
| 1990/1226 |
| |
| 1991/0111 | delay(30*1000); | |
| 1990/1226 | reset(); | |
| 1990/1223 | } | |
| 1991/0110/sys/src/9/ss/main.c:301,312 – 1991/0111/sys/src/9/ss/main.c:301,315 | ||
| 1990/1223 | conf.nmach = 1; if(conf.nmach > MAXMACH) panic("confinit"); | |
| 1991/0110 |
| |
| 1990/1226 |
| |
| 1991/0111 | conf.npage0 = (4*1024*1024)/BY2PG; /* BUG */ conf.npage1 = 0*(4*1024*1024)/BY2PG; /* BUG */ | |
| 1990/1223 | conf.base0 = 0; | |
| 1991/0111 | conf.base1 = 16*1024*1024; | |
| 1990/1223 | conf.npage = conf.npage0+conf.npage1; | |
| 1990/1226 | conf.maxialloc = 4*1024*1024; /* BUG */ | |
| 1991/0111 | mul = 1; if(conf.npage1 > 0) mul = 2; | |
| 1990/1223 | conf.nproc = 50*mul; conf.npgrp = 12*mul; | |
| 1991/0110 | conf.npte = 1400*mul; | |
| 1991/0110/sys/src/9/ss/main.c:320,326 – 1991/0111/sys/src/9/ss/main.c:323,329 | ||
| 1990/1223 | conf.nmtab = 50*mul; conf.nmount = 80*mul; conf.nmntdev = 10*mul; | |
| 1991/0111 | conf.nmntbuf = conf.nmntdev+6; | |
| 1990/1223 | conf.nmnthdr = 2*conf.nmntdev; conf.nstream = 40 + 32*mul; conf.nqueue = 5 * conf.nstream; | |
| 1991/0111/sys/src/9/ss/main.c:11,59 – 1991/0112/sys/src/9/ss/main.c:11,20 (short | long) | ||
| 1990/1223 | #include <gnot.h> char user[NAMELEN]; | |
| 1991/0110 | uchar *intrreg; | |
| 1990/1223 |
| |
| 1990/1226 |
| |
| 1990/1223 |
| |
| 1990/1226 |
| |
| 1990/1223 |
| |
| 1990/1226 |
| |
| 1990/1223 |
| |
| 1990/1226 |
| |
| 1990/1223 |
| |
| 1991/0111/sys/src/9/ss/main.c:61,75 – 1991/0112/sys/src/9/ss/main.c:22,34 | ||
| 1990/1223 | u = 0; memset(&edata, 0, (char*)&end-(char*)&edata); | |
| 1990/1226 | mmuinit(); printinit(); | |
| 1991/0111 |
| |
| 1991/0112 | print("sparc plan 9\n"); | |
| 1990/1226 | trapinit(); | |
| 1990/1223 | kmapinit(); | |
| 1991/0111 |
| |
| 1990/1226 | cacheinit(); | |
| 1991/0110 | intrinit(); | |
| 1990/1223 | procinit0(); | |
| 1991/0111/sys/src/9/ss/main.c:102,115 – 1991/0112/sys/src/9/ss/main.c:61,66 | ||
| 1990/1226 | putb2(ENAB, ENABRESET); | |
| 1990/1223 | } | |
| 1991/0109 |
| |
| 1990/1223 |
| |
| 1990/1226 |
| |
| 1990/1223 |
| |
| 1991/0111/sys/src/9/ss/main.c:141,158 – 1991/0112/sys/src/9/ss/main.c:92,97 | ||
| 1990/1223 | u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); | |
| 1990/1226 | touser(USTKTOP-5*BY2WD); | |
| 1990/1223 | } | |
| 1991/0111/sys/src/9/ss/main.c:304,310 – 1991/0112/sys/src/9/ss/main.c:243,249 | ||
| 1991/0111 | conf.npage0 = (4*1024*1024)/BY2PG; /* BUG */ conf.npage1 = 0*(4*1024*1024)/BY2PG; /* BUG */ | |
| 1990/1223 | conf.base0 = 0; | |
| 1991/0111 |
| |
| 1991/0112 | conf.base1 = 32*1024*1024; | |
| 1990/1223 | conf.npage = conf.npage0+conf.npage1; | |
| 1990/1226 | conf.maxialloc = 4*1024*1024; /* BUG */ | |
| 1991/0111 | mul = 1; | |
| 1991/0112/sys/src/9/ss/main.c:241,247 – 1991/0115/sys/src/9/ss/main.c:241,247 (short | long) | ||
| 1990/1223 | if(conf.nmach > MAXMACH) panic("confinit"); | |
| 1991/0111 | conf.npage0 = (4*1024*1024)/BY2PG; /* BUG */ | |
| 1991/0115 | conf.npage1 = (4*1024*1024)/BY2PG; /* BUG */ | |
| 1990/1223 | conf.base0 = 0; | |
| 1991/0112 | conf.base1 = 32*1024*1024; | |
| 1990/1223 | conf.npage = conf.npage0+conf.npage1; | |
| 1991/0115/sys/src/9/ss/main.c:71,80 – 1991/01151/sys/src/9/ss/main.c:71,77 (short | long) | ||
| 1990/1223 | memset(m, 0, sizeof(Mach)); m->machno = n; m->mmask = 1<<m->machno; | |
| 1991/0115/sys/src/9/ss/main.c:109,114 – 1991/01151/sys/src/9/ss/main.c:106,112 | ||
| 1990/1223 | p = newproc(); p->pgrp = newpgrp(); strcpy(p->text, "*init*"); | |
| 1991/01151 | savefpregs(&initfp); | |
| 1990/1223 | p->fpstate = FPinit; /* | |
| 1991/0115/sys/src/9/ss/main.c:344,406 – 1991/01151/sys/src/9/ss/main.c:342,345 | ||
| 1990/1231 | lp->rp = (Etherpkt*)k->va; | |
| 1991/0108 | lp->ltp = lp->lrp+lp->nrrb; lp->tp = lp->rp+lp->nrrb; | |
| 1990/1223 |
| |
| 1991/01151/sys/src/9/ss/main.c:260,266 – 1991/0117/sys/src/9/ss/main.c:260,266 (short | long) | ||
| 1990/1223 | conf.nmtab = 50*mul; conf.nmount = 80*mul; conf.nmntdev = 10*mul; | |
| 1991/0111 |
| |
| 1991/0117 | conf.nmntbuf = conf.nmntdev+3; | |
| 1990/1223 | conf.nmnthdr = 2*conf.nmntdev; conf.nstream = 40 + 32*mul; conf.nqueue = 5 * conf.nstream; | |
| 1991/0117/sys/src/9/ss/main.c:142,148 – 1991/0318/sys/src/9/ss/main.c:142,148 (short | long) | ||
| 1990/1223 | s->o->pte[0].page = newpage(0, 0, UTZERO); s->o->npage = 1; k = kmap(s->o->pte[0].page); | |
| 1991/0318 | memmove((ulong*)VA(k), initcode, sizeof initcode); | |
| 1990/1223 | kunmap(k); s->minva = UTZERO; s->maxva = UTZERO+BY2PG; | |
| 1991/0318/sys/src/9/ss/main.c:25,34 – 1991/0604/sys/src/9/ss/main.c:25,36 (short | long) | ||
| 1990/1223 | machinit(); confinit(); | |
| 1990/1226 | mmuinit(); | |
| 1991/0604 | screeninit(); | |
| 1990/1226 | printinit(); | |
| 1991/0112 | print("sparc plan 9\n"); | |
| 1990/1226 | trapinit(); | |
| 1990/1223 | kmapinit(); | |
| 1991/0604 | ioinit(); | |
| 1990/1226 | cacheinit(); | |
| 1991/0110 | intrinit(); | |
| 1990/1223 | procinit0(); | |
| 1991/0318/sys/src/9/ss/main.c:75,80 – 1991/0604/sys/src/9/ss/main.c:77,94 | ||
| 1990/1223 | } void | |
| 1991/0604 | ioinit(void) { KMap *k; k = kmappa(KMDUART, PTEIO|PTENOCACHE); sccsetup((void*)(k->va)); sccspecial(0, 0, &kbdq, 2400); /* scc port 0 is the keyboard */ kbdq.putc = kbdstate; sccspecial(1, 0, &mouseq, 2400); /* scc port 1 is the mouse */ } void | |
| 1990/1223 | init0(void) { Chan *c; | |
| 1991/0318/sys/src/9/ss/main.c:342,345 – 1991/0604/sys/src/9/ss/main.c:356,365 | ||
| 1990/1231 | lp->rp = (Etherpkt*)k->va; | |
| 1991/0108 | lp->ltp = lp->lrp+lp->nrrb; lp->tp = lp->rp+lp->nrrb; | |
| 1991/0604 | } void firmware(void) { reset(); | |
| 1990/1223 | } | |
| 1991/0604/sys/src/9/ss/main.c:81,91 – 1991/0608/sys/src/9/ss/main.c:81,96 (short | long) | ||
| 1991/0604 | { KMap *k; | |
| 1991/0608 | /* tell scc driver it's address */ | |
| 1991/0604 | k = kmappa(KMDUART, PTEIO|PTENOCACHE); sccsetup((void*)(k->va)); | |
| 1991/0608 | /* scc port 0 is the keyboard */ sccspecial(0, 0, &kbdq, 2400); | |
| 1991/0604 | kbdq.putc = kbdstate; | |
| 1991/0608 | /* scc port 1 is the mouse */ sccspecial(1, 0, &mouseq, 2400); | |
| 1991/0604 | } void | |
| 1991/0604/sys/src/9/ss/main.c:170,178 – 1991/0608/sys/src/9/ss/main.c:175,186 | ||
| 1990/1223 | int i; u = 0; | |
| 1991/0608 | spllo(); print("cpu %d exiting\n", m->machno); while(consactive()) for(i=0; i<1000; i++) ; | |
| 1990/1223 | splhi(); | |
| 1991/0111 |
| |
| 1990/1226 | reset(); | |
| 1990/1223 | } | |
| 1991/0604/sys/src/9/ss/main.c:291,296 – 1991/0608/sys/src/9/ss/main.c:299,305 | ||
| 1990/1223 | conf.nservice = 3*mul; /* was conf.nproc/5 */ conf.nfsyschan = 31 + conf.nchan/20; conf.copymode = 0; /* copy on write */ | |
| 1991/0608 | conf.cntrlp = 0; | |
| 1990/1231 | } /* | |
| 1991/0608/sys/src/9/ss/main.c:34,40 – 1991/0706/sys/src/9/ss/main.c:34,41 (short | long) | ||
| 1990/1226 | cacheinit(); | |
| 1991/0110 | intrinit(); | |
| 1990/1223 | procinit0(); | |
| 1991/0706 | initseg(); grpinit(); | |
| 1990/1223 | chaninit(); alarminit(); chandevreset(); | |
| 1991/0608/sys/src/9/ss/main.c:109,114 – 1991/0706/sys/src/9/ss/main.c:110,116 | ||
| 1990/1223 | u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0706 | kickpager(); | |
| 1990/1226 | touser(USTKTOP-5*BY2WD); | |
| 1990/1223 | } | |
| 1991/0608/sys/src/9/ss/main.c:118,129 – 1991/0706/sys/src/9/ss/main.c:120,134 | ||
| 1990/1223 | userinit(void) { Proc *p; | |
| 1991/0706 | Segment *s; | |
| 1990/1223 | User *up; KMap *k; p = newproc(); p->pgrp = newpgrp(); | |
| 1991/0706 | p->egrp = newegrp(); p->fgrp = newfgrp(); | |
| 1990/1223 | strcpy(p->text, "*init*"); | |
| 1991/01151 | savefpregs(&initfp); | |
| 1990/1223 | p->fpstate = FPinit; | |
| 1991/0608/sys/src/9/ss/main.c:146,170 – 1991/0706/sys/src/9/ss/main.c:151,168 | ||
| 1990/1223 | /* * User Stack */ | |
| 1991/0706 | s = newseg(SG_STACK, USTKTOP-BY2PG, 1); p->seg[SSEG] = s; | |
| 1990/1223 | /* * Text */ | |
| 1991/0706 | s = newseg(SG_TEXT, UTZERO, 1); p->seg[TSEG] = s; segpage(s, newpage(1, 0, UTZERO)); k = kmap(s->map[0]->pages[0]); | |
| 1991/0318 | memmove((ulong*)VA(k), initcode, sizeof initcode); | |
| 1990/1223 | kunmap(k); | |
| 1991/0608/sys/src/9/ss/main.c:271,280 – 1991/0706/sys/src/9/ss/main.c:269,279 | ||
| 1991/0111 | mul = 2; | |
| 1990/1223 | conf.nproc = 50*mul; conf.npgrp = 12*mul; | |
| 1991/0110 |
| |
| 1991/0706 | conf.nseg = conf.nproc*4; conf.npagetab = conf.nseg*2; conf.nswap = 4096; conf.nimage = 50; | |
| 1990/1223 | conf.nalarm = 1000; | |
| 1991/0706/sys/src/9/ss/main.c:182,253 – 1991/0710/sys/src/9/ss/main.c:182,187 (short | long) | ||
| 1990/1226 | reset(); | |
| 1990/1223 | } | |
| 1991/0710/sys/src/9/ss/main.c:111,117 – 1991/0711/sys/src/9/ss/main.c:111,117 (short | long) | ||
| 1990/1223 | u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0706 | kickpager(); | |
| 1990/1226 |
| |
| 1991/0711 | touser(USTKTOP-(1+MAXSYSARG)*BY2WD); | |
| 1990/1223 | } FPsave initfp; | |
| 1991/0710/sys/src/9/ss/main.c:137,143 – 1991/0711/sys/src/9/ss/main.c:137,143 | ||
| 1990/1223 | * Kernel Stack */ | |
| 1991/0110 | p->sched.pc = (((ulong)init0) - 8); /* 8 because of RETURN in gotolabel */ | |
| 1990/1223 |
| |
| 1991/0711 | p->sched.sp = USERADDR+BY2PG-(1+MAXSYSARG)*BY2WD; | |
| 1990/1223 | p->upage = newpage(0, 0, USERADDR|(p->pid&0xFFFF)); /* | |
| 1991/0711/sys/src/9/ss/main.c:110,116 – 1991/0712/sys/src/9/ss/main.c:110,116 (short | long) | ||
| 1990/1223 | u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0706 |
| |
| 1991/0712 | kickpager(); /**/ | |
| 1991/0711 | touser(USTKTOP-(1+MAXSYSARG)*BY2WD); | |
| 1990/1223 | } | |
| 1991/0712/sys/src/9/ss/main.c:110,116 – 1991/0717/sys/src/9/ss/main.c:110,115 (short | long) | ||
| 1990/1223 | u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0712 |
| |
| 1991/0711 | touser(USTKTOP-(1+MAXSYSARG)*BY2WD); | |
| 1990/1223 | } | |
| 1991/0717/sys/src/9/ss/main.c:58,64 – 1991/0926/sys/src/9/ss/main.c:58,64 (short | long) | ||
| 1991/0110 | } void | |
| 1990/1223 |
| |
| 1991/0926 | systemreset(void) | |
| 1990/1223 | { delay(100); | |
| 1990/1226 | putb2(ENAB, ENABRESET); | |
| 1991/0717/sys/src/9/ss/main.c:110,115 – 1991/0926/sys/src/9/ss/main.c:110,125 | ||
| 1990/1223 | u->slash = (*devtab[0].attach)(0); u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0926 | if(!waserror()){ c = namec("#e/terminal", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, "sun sparc slc", strlen("sun sparc slc"), 0); close(c); c = namec("#e/cputype", Acreate, OWRITE, 0600); (*devtab[c->type].write)(c, "sparc", strlen("sparc"), 0); close(c); poperror(); } | |
| 1991/0711 | touser(USTKTOP-(1+MAXSYSARG)*BY2WD); | |
| 1990/1223 | } | |
| 1991/0717/sys/src/9/ss/main.c:178,184 – 1991/0926/sys/src/9/ss/main.c:188,194 | ||
| 1991/0608 | for(i=0; i<1000; i++) ; | |
| 1990/1223 | splhi(); | |
| 1990/1226 |
| |
| 1991/0926 | systemreset(); | |
| 1990/1223 | } Conf conf; | |
| 1991/0717/sys/src/9/ss/main.c:231,236 – 1991/0926/sys/src/9/ss/main.c:241,250 | ||
| 1990/1223 | conf.nservice = 3*mul; /* was conf.nproc/5 */ conf.nfsyschan = 31 + conf.nchan/20; conf.copymode = 0; /* copy on write */ | |
| 1991/0926 | conf.ipif = 8; conf.ip = 64; conf.arp = 32; conf.frag = 32; | |
| 1991/0608 | conf.cntrlp = 0; | |
| 1990/1231 | } | |
| 1991/0717/sys/src/9/ss/main.c:302,306 – 1991/0926/sys/src/9/ss/main.c:316,320 | ||
| 1991/0604 | void firmware(void) { | |
| 1991/0926 | systemreset(); | |
| 1990/1223 | } | |
| 1991/0926/sys/src/9/ss/main.c:111,122 – 1991/0927/sys/src/9/ss/main.c:111,118 (short | long) | ||
| 1990/1223 | u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0926 | if(!waserror()){ | |
| 1991/0927 | ksetenv("terminal", "sun sparc slc"); ksetenv("cputype", "sparc"); | |
| 1991/0926 | poperror(); } | |
| 1991/0927/sys/src/9/ss/main.c:135,140 – 1991/1011/sys/src/9/ss/main.c:135,141 (short | long) | ||
| 1991/0706 | p->fgrp = newfgrp(); | |
| 1990/1223 | strcpy(p->text, "*init*"); | |
| 1991/1011 | strcpy(p->pgrp->user, "bootes"); | |
| 1991/01151 | savefpregs(&initfp); | |
| 1990/1223 | p->fpstate = FPinit; | |
| 1991/1011/sys/src/9/ss/main.c:266,272 – 1991/1030/sys/src/9/ss/main.c:266,272 (short | long) | ||
| 1990/1231 | lp->ea[i] = *cp++; kunmap(k); | |
| 1991/0109 |
| |
| 1991/1030 | lp->lognrrb = 7; | |
| 1991/0109 | lp->logntrb = 5; | |
| 1990/1231 | lp->nrrb = 1<<lp->lognrrb; lp->ntrb = 1<<lp->logntrb; | |
| 1991/1030/sys/src/9/ss/main.c:111,117 – 1991/1101/sys/src/9/ss/main.c:111,117 (short | long) | ||
| 1990/1223 | u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0926 | if(!waserror()){ | |
| 1991/0927 |
| |
| 1991/1101 | ksetenv("terminal", "sun slc"); | |
| 1991/0927 | ksetenv("cputype", "sparc"); | |
| 1991/0926 | poperror(); } | |
| 1991/1101/sys/src/9/ss/main.c:111,117 – 1991/1102/sys/src/9/ss/main.c:111,117 (short | long) | ||
| 1990/1223 | u->dot = clone(u->slash, 0); | |
| 1990/1226 | ||
| 1991/0926 | if(!waserror()){ | |
| 1991/1101 |
| |
| 1991/1102 | ksetterm("sun %s"); | |
| 1991/0927 | ksetenv("cputype", "sparc"); | |
| 1991/0926 | poperror(); } | |
| Too many diffs (26 > 25). Stopping. | ||