diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-17 04:03:51 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-17 04:03:51 +0200 |
commit | 7fdf8205891496554b18650596334e28dc3366ed (patch) | |
tree | 98e0a65d6290af12f15af69b172bf33210cc3c7a /sys/src | |
parent | 81954dbf2535b3ae65acabee5f6210d8a002a9a8 (diff) |
pckernel: use constants instead of hardcoding cpuid bits in various places
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/9/pc/dat.h | 5 | ||||
-rw-r--r-- | sys/src/9/pc/devarch.c | 4 | ||||
-rw-r--r-- | sys/src/9/pc/main.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc/memory.c | 4 | ||||
-rw-r--r-- | sys/src/9/pc/mmu.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc/mp.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc/trap.c | 4 |
7 files changed, 12 insertions, 11 deletions
diff --git a/sys/src/9/pc/dat.h b/sys/src/9/pc/dat.h index 49b78b734..caf2e0770 100644 --- a/sys/src/9/pc/dat.h +++ b/sys/src/9/pc/dat.h @@ -283,7 +283,8 @@ enum { /* dx */ Fpuonchip = 1<<0, -// Pse = 1<<3, /* page size extensions */ + Vmex = 1<<1, /* virtual-mode extensions */ + Pse = 1<<3, /* page size extensions */ Tsc = 1<<4, /* time-stamp counter */ Cpumsr = 1<<5, /* model-specific registers, rdmsr/wrmsr */ Pae = 1<<6, /* physical-addr extensions */ @@ -292,7 +293,7 @@ enum { Cpuapic = 1<<9, Mtrr = 1<<12, /* memory-type range regs. */ Pge = 1<<13, /* page global extension */ -// Pse2 = 1<<17, /* more page size extensions */ + Pse2 = 1<<17, /* more page size extensions */ Clflush = 1<<19, Acpif = 1<<22, /* therm control msr */ Mmx = 1<<23, diff --git a/sys/src/9/pc/devarch.c b/sys/src/9/pc/devarch.c index 20dc87923..fc407fa6a 100644 --- a/sys/src/9/pc/devarch.c +++ b/sys/src/9/pc/devarch.c @@ -809,9 +809,9 @@ cpuidentify(void) * are supported enable them in CR4 and clear any other set extensions. * If machine check was enabled clear out any lingering status. */ - if(m->cpuiddx & (Pge|Mce|0x8)){ + if(m->cpuiddx & (Pge|Mce|Pse)){ cr4 = 0; - if(m->cpuiddx & 0x08) + if(m->cpuiddx & Pse) cr4 |= 0x10; /* page size extensions */ if(p = getconf("*nomce")) nomce = strtoul(p, 0, 0); diff --git a/sys/src/9/pc/main.c b/sys/src/9/pc/main.c index 71c469650..13b42bf99 100644 --- a/sys/src/9/pc/main.c +++ b/sys/src/9/pc/main.c @@ -523,7 +523,7 @@ matherror(Ureg *ur, void*) * a write cycle to port 0xF0 clears the interrupt latch attached * to the error# line from the 387 */ - if(!(m->cpuiddx & 0x01)) + if(!(m->cpuiddx & Fpuonchip)) outb(0xF0, 0xFF); /* diff --git a/sys/src/9/pc/memory.c b/sys/src/9/pc/memory.c index f0e2eba32..994a104d5 100644 --- a/sys/src/9/pc/memory.c +++ b/sys/src/9/pc/memory.c @@ -473,9 +473,9 @@ ramscan(ulong maxmem) table = &m->pdb[PDX(KADDR(pa - 4*MB))]; if(nvalid[MemUPA] == (4*MB)/BY2PG) *table = 0; - else if(nvalid[MemRAM] == (4*MB)/BY2PG && (m->cpuiddx & 0x08)) + else if(nvalid[MemRAM] == (4*MB)/BY2PG && (m->cpuiddx & Pse)) *table = (pa - 4*MB)|PTESIZE|PTEWRITE|PTEVALID; - else if(nvalid[MemUMB] == (4*MB)/BY2PG && (m->cpuiddx & 0x08)) + else if(nvalid[MemUMB] == (4*MB)/BY2PG && (m->cpuiddx & Pse)) *table = (pa - 4*MB)|PTESIZE|PTEWRITE|PTEUNCACHED|PTEVALID; else{ *table = map|PTEWRITE|PTEVALID; diff --git a/sys/src/9/pc/mmu.c b/sys/src/9/pc/mmu.c index fcc8cc69b..8ee3f96ce 100644 --- a/sys/src/9/pc/mmu.c +++ b/sys/src/9/pc/mmu.c @@ -712,7 +712,7 @@ pdbmap(ulong *pdb, ulong pa, ulong va, int size) flag = pa&0xFFF; pa &= ~0xFFF; - if((MACHP(0)->cpuiddx & 0x08) && (getcr4() & 0x10)) + if((MACHP(0)->cpuiddx & Pse) && (getcr4() & 0x10)) pse = 1; else pse = 0; diff --git a/sys/src/9/pc/mp.c b/sys/src/9/pc/mp.c index 7c5dcaa37..c53d2b089 100644 --- a/sys/src/9/pc/mp.c +++ b/sys/src/9/pc/mp.c @@ -99,7 +99,7 @@ checkmtrr(void) /* * If there are MTRR registers, snarf them for validation. */ - if(!(m->cpuiddx & 0x1000)) + if(!(m->cpuiddx & Mtrr)) return; rdmsr(0x0FE, &m->mtrrcap); diff --git a/sys/src/9/pc/trap.c b/sys/src/9/pc/trap.c index 7b0ebb847..c433a0365 100644 --- a/sys/src/9/pc/trap.c +++ b/sys/src/9/pc/trap.c @@ -535,9 +535,9 @@ dumpregs(Ureg* ureg) */ iprint(" CR0 %8.8lux CR2 %8.8lux CR3 %8.8lux", getcr0(), getcr2(), getcr3()); - if(m->cpuiddx & 0x9A){ + if(m->cpuiddx & (Mce|Tsc|Pse|Vmex)){ iprint(" CR4 %8.8lux", getcr4()); - if((m->cpuiddx & 0xA0) == 0xA0){ + if((m->cpuiddx & (Mce|Cpumsr)) == (Mce|Cpumsr)){ rdmsr(0x00, &mca); rdmsr(0x01, &mct); iprint("\n MCA %8.8llux MCT %8.8llux", mca, mct); |