]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/ppc/dat.h
kernel: clean up Mach structure
[plan9front.git] / sys / src / 9 / ppc / dat.h
index d10559f0178d8a6fbc4c97cf50ade843bc809d6e..925d35af7057430e0268004c99c75f3449b32e96 100644 (file)
@@ -1,11 +1,12 @@
 typedef struct Conf    Conf;
+typedef struct Confmem Confmem;
 typedef struct FPsave  FPsave;
+typedef struct PFPU    PFPU;
 typedef struct ISAConf ISAConf;
 typedef struct Imap    Imap;
 typedef struct Label   Label;
 typedef struct Lock    Lock;
 typedef struct Mach    Mach;
-typedef struct Notsave Notsave;
 typedef struct PCArch  PCArch;
 typedef struct PMMU    PMMU;
 typedef struct Page    Page;
@@ -14,6 +15,7 @@ typedef struct Proc   Proc;
 typedef struct Sys     Sys;
 typedef struct Ureg    Ureg;
 typedef struct Vctl    Vctl;
+typedef long           Tval;
 
 #pragma incomplete Ureg
 #pragma incomplete Imap
@@ -45,19 +47,6 @@ struct Label
        ulong   pc;
 };
 
-/*
- * Proc.fpstate
- */
-enum
-{
-       /* Floating point states */
-       FPinit = 0,
-       FPactive = 1,
-       FPinactive = 2,
-       /* Bit that's or-ed in during note handling (FP is illegal in note handlers) */
-       FPillegal = 0x100,
-};
-
 /*
  * This structure must agree with fpsave and fprestore asm routines
  */
@@ -73,15 +62,36 @@ struct FPsave
        };
 };
 
+struct PFPU
+{
+       int     fpstate;
+       FPsave  fpsave[1];
+};
+
+enum
+{
+       /* Floating point states */
+       FPinit = 0,
+       FPactive = 1,
+       FPinactive = 2,
+       /* Bit that's or-ed in during note handling (FP is illegal in note handlers) */
+       FPillegal = 0x100,
+};
+
+struct Confmem
+{
+       ulong   base;
+       ulong   npage;
+       ulong   kbase;
+       ulong   klimit;
+};
+
 struct Conf
 {
        ulong   nmach;          /* processors */
        ulong   nproc;          /* processes */
-       ulong   npage0;         /* total physical pages of memory */
-       ulong   npage1;         /* total physical pages of memory */
+       Confmem mem[2];
        ulong   npage;          /* total physical pages of memory */
-       ulong   base0;          /* base of bank 0 */
-       ulong   base1;          /* base of bank 1 */
        ulong   upages;         /* user page pool */
        ulong   nimage;         /* number of page cache image headers */
        ulong   nswap;          /* number of swap pages */
@@ -102,14 +112,6 @@ struct PMMU
        Ureg    *mmureg;                /* pointer to ureg structure */
 };
 
-/*
- *  things saved in the Proc structure during a notify
- */
-struct Notsave
-{
-       ulong   UNUSED;
-};
-
 #include "../port/portdat.h"
 
 /*
@@ -135,62 +137,37 @@ struct Mach
 /*0x14*/       ulong   dmiss;  /* number of data misses */
 
        /* ordering from here on irrelevant */
+       PMach;
 
        Imap*   imap;
 
-       ulong   ticks;          /* of the clock since boot time */
-       Label   sched;          /* scheduler wakeup */
-       Lock    alarmlock;      /* access to alarm list */
-       void    *alarm;         /* alarms bound to this clock */
-       int     inclockintr;
+       uintptr ptabbase;       /* start of page table in kernel virtual space */
+       int     slotgen;        /* next pte (byte offset) when pteg is full */
+       int     mmupid;         /* next mmu pid to use */
+       int     sweepcolor;
+       int     trigcolor;
+       Rendez  sweepr;
+
        int     cputype;
        ulong   loopconst;
-       Perf    perf;           /* performance counters */
-
-       Proc*   readied;        /* for runproc */
-       ulong   schedticks;     /* next forced context switch */
 
        ulong   clkin;          /* basic clock frequency */
        ulong   vco_out;
        vlong   cpuhz;
-       uvlong  cyclefreq;      /* Frequency of user readable cycle counter */
        ulong   bushz;
        ulong   dechz;
        ulong   tbhz;
        ulong   cpmhz;          /* communications processor module frequency */
        ulong   brghz;          /* baud rate generator frequency */
 
-       ulong   pcclast;
-       uvlong  fastclock;
-
-       int     tlbpurge;       /* # of tlb purges */
-       int     pfault;         /* # of page faults */
-       int     cs;
-       int     syscall;
-       int     load;
-       int     intr;
-       int     flushmmu;       /* make current proc flush it's mmu state */
-       int     ilockdepth;
-
-       ulong   ptabbase;       /* start of page table in kernel virtual space */
-       int     slotgen;        /* next pte (byte offset) when pteg is full */
-       int     mmupid;         /* next mmu pid to use */
-       int     sweepcolor;
-       int     trigcolor;
-       Rendez  sweepr;
-
-       ulong   spuriousintr;
-       int     lastintr;
-
        /* MUST BE LAST */
-       int     stack[1];
+       uintptr stack[1];
 };
 
 struct
 {
-       Lock;
-       short   machs;
-       short   exiting;
+       char    machs[MAXMACH];
+       int     exiting;
 }active;
 
 /*