diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-04-25 17:41:34 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-04-25 17:41:34 +0200 |
commit | c0d4498ab8a4e564156f49e5b6633a6335b91fc4 (patch) | |
tree | b35786376285707481ad2c9b5a7fcd636b6a2a3b /sys/src/9/pc64 | |
parent | 9f54c2831717bc656df6e5a2fde2bf7be8e29fef (diff) |
kernel: clean up Mach structure
Remove unused fields and factor common fields into a
new PMach struct in port/portdat.h.
The fields machno, splpc and proc are not moved to
PMach as they are part of the known offsets from
assembly (l.s).
Diffstat (limited to 'sys/src/9/pc64')
-rw-r--r-- | sys/src/9/pc64/dat.h | 58 |
1 files changed, 19 insertions, 39 deletions
diff --git a/sys/src/9/pc64/dat.h b/sys/src/9/pc64/dat.h index 1d581f371..b8628db9d 100644 --- a/sys/src/9/pc64/dat.h +++ b/sys/src/9/pc64/dat.h @@ -184,48 +184,21 @@ typedef struct { struct Mach { - int machno; /* physical id of processor (KNOWN TO ASSEMBLY) */ - uintptr splpc; /* pc of last caller to splhi (KNOWN TO ASSEMBLY) */ + int machno; /* physical id of processor */ + uintptr splpc; /* pc of last caller to splhi */ + Proc* proc; /* current process on this processor */ - Proc* proc; /* current process on this processor (KNOWN TO ASSEMBLY) */ - - u64int* pml4; /* pml4 base for this processor (va) */ - Tss* tss; /* tss for this processor */ - Segdesc *gdt; /* gdt for this processor */ - - u64int mmumap[4]; /* bitmap of pml4 entries for zapping */ - MMU* mmufree; /* freelist for MMU structures */ - ulong mmucount; /* number of MMU structures in freelist */ - - 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; - - Proc* readied; /* for runproc */ - ulong schedticks; /* next forced context switch */ - - int tlbfault; - int tlbpurge; - int pfault; - int cs; - int syscall; - int load; - int intr; - int flushmmu; /* make current proc flush it's mmu state */ - int ilockdepth; - Perf perf; /* performance counters */ + PMach; + uvlong tscticks; ulong spuriousintr; int lastintr; int loopconst; int aalcycles; - int cpumhz; - uvlong cyclefreq; /* Frequency of user readable cycle counter */ uvlong cpuhz; + int cpuidax; int cpuidcx; int cpuiddx; @@ -234,17 +207,24 @@ struct Mach uchar cpuidfamily; uchar cpuidmodel; uchar cpuidstepping; - int havetsc; - int havepge; - int havewatchpt8; - int havenx; - uvlong tscticks; + + char havetsc; + char havepge; + char havewatchpt8; + char havenx; + + u64int* pml4; /* pml4 base for this processor (va) */ + Tss* tss; /* tss for this processor */ + Segdesc*gdt; /* gdt for this processor */ u64int dr7; /* shadow copy of dr7 */ u64int xcr0; - void* vmx; + MMU* mmufree; /* freelist for MMU structures */ + ulong mmucount; /* number of MMU structures in freelist */ + u64int mmumap[4]; /* bitmap of pml4 entries for zapping */ + uintptr stack[1]; }; |