summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-08-17 04:03:51 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-08-17 04:03:51 +0200
commit7fdf8205891496554b18650596334e28dc3366ed (patch)
tree98e0a65d6290af12f15af69b172bf33210cc3c7a /sys/src
parent81954dbf2535b3ae65acabee5f6210d8a002a9a8 (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.h5
-rw-r--r--sys/src/9/pc/devarch.c4
-rw-r--r--sys/src/9/pc/main.c2
-rw-r--r--sys/src/9/pc/memory.c4
-rw-r--r--sys/src/9/pc/mmu.c2
-rw-r--r--sys/src/9/pc/mp.c2
-rw-r--r--sys/src/9/pc/trap.c4
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);