]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/mtx/main.c
kernel: get rid of active.Lock and active.thunderbirdsargo
[plan9front.git] / sys / src / 9 / mtx / main.c
old mode 100755 (executable)
new mode 100644 (file)
index eebad44..1ce0715
@@ -29,7 +29,6 @@ main(void)
        mmuinit();
        hwintrinit();
        clockinit();
-       kbdinit();
        procinit0();
        initseg();
        timersinit();
@@ -60,7 +59,7 @@ machinit(void)
        /* turn on caches */
        puthid0(gethid0() | BIT(16) | BIT(17));
 
-       active.machs = 1;
+       active.machs[0] = 1;
        active.exiting = 0;
 }
 
@@ -199,7 +198,7 @@ userinit(void)
        s->flushme++;
        p->seg[TSEG] = s;
        pg = newpage(1, 0, UTZERO);
-       memset(pg->cachectl, PG_TXTFLUSH, sizeof(pg->cachectl));
+       pg->txtflush = ~0;
        segpage(s, pg);
        k = kmap(s->map[0]->pages[0]);
        memmove((ulong*)VA(k), initcode, sizeof initcode);
@@ -212,42 +211,12 @@ userinit(void)
 void
 reboot(void*, void*, ulong)
 {
-       exit(0);
 }
 
 void
-exit(int ispanic)
+exit(int)
 {
-       int ms, once;
-
-       lock(&active);
-       if(ispanic)
-               active.ispanic = ispanic;
-       else if(m->machno == 0 && (active.machs & (1<<m->machno)) == 0)
-               active.ispanic = 0;
-       once = active.machs & (1<<m->machno);
-       active.machs &= ~(1<<m->machno);
-       active.exiting = 1;
-       unlock(&active);
-
-       if(once)
-               print("cpu%d: exiting\n", m->machno);
-       spllo();
-       for(ms = 5*1000; ms > 0; ms -= TK2MS(2)){
-               delay(TK2MS(2));
-               if(active.machs == 0 && consactive() == 0)
-                       break;
-       }
-
-       if(active.ispanic && m->machno == 0){
-               if(cpuserver)
-                       delay(10000);
-               else if(conf.monitor)
-                       for(;;);
-       }
-       else
-               delay(1000);
-
+       cpushutdown();
        watchreset();
 }
 
@@ -260,6 +229,11 @@ procsetup(Proc *p)
        p->fpstate = FPinit;
 }
 
+void
+procfork(Proc *)
+{
+}
+
 /*
  *  Save the mach dependent part of the process state.
  */
@@ -342,15 +316,14 @@ confinit(void)
 
        /*
         * Guess how much is taken by the large permanent
-        * datastructures. Mntcache and Mntrpc are not accounted for
-        * (probably ~300KB).
+        * datastructures. Mntcache and Mntrpc are not accounted for.
         */
        kpages *= BY2PG;
        kpages -= conf.upages*sizeof(Page)
                + conf.nproc*sizeof(Proc)
                + conf.nimage*sizeof(Image)
                + conf.nswap
-               + conf.nswppo*sizeof(Page);
+               + conf.nswppo*sizeof(Page*);
        mainmem->maxsize = kpages;
        if(!cpuserver){
                /*