|
Lines 78-83
Link Here
|
| 78 |
|
78 |
|
| 79 |
u_int cyrix_did; /* Device ID of Cyrix CPU */ |
79 |
u_int cyrix_did; /* Device ID of Cyrix CPU */ |
| 80 |
int cpu_class = CPUCLASS_386; /* least common denominator */ |
80 |
int cpu_class = CPUCLASS_386; /* least common denominator */ |
|
|
81 |
SYSCTL_INT(_hw, HW_CPUCLASS, cpu_class, CTLFLAG_RD, |
| 82 |
&cpu_class, 0, "CPU class"); |
| 83 |
|
| 81 |
char machine[] = "i386"; |
84 |
char machine[] = "i386"; |
| 82 |
SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, |
85 |
SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, |
| 83 |
machine, 0, "Machine class"); |
86 |
machine, 0, "Machine class"); |
|
Lines 86-91
Link Here
|
| 86 |
SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD, |
89 |
SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD, |
| 87 |
cpu_model, 0, "Machine model"); |
90 |
cpu_model, 0, "Machine model"); |
| 88 |
|
91 |
|
|
|
92 |
SYSCTL_NODE(_hw, OID_AUTO, features, CTLFLAG_RW, 0, |
| 93 |
"CPU features"); |
| 94 |
|
| 95 |
int featuresmmx; |
| 96 |
SYSCTL_INT(_hw_features, OID_AUTO, mmx, CTLFLAG_RD, |
| 97 |
&featuresmmx, 0, "MMX Support"); |
| 98 |
|
| 99 |
int features3dnow; |
| 100 |
SYSCTL_INT(_hw_features, OID_AUTO, 3dnow, CTLFLAG_RD, |
| 101 |
&features3dnow, 0, "3DNow! Support"); |
| 102 |
|
| 103 |
int featuressimd; |
| 104 |
SYSCTL_INT(_hw_features, OID_AUTO, simd, CTLFLAG_RD, |
| 105 |
&featuressimd, 0, "SIMD Support"); |
| 106 |
|
| 107 |
|
| 108 |
|
| 89 |
static struct cpu_nameclass i386_cpus[] = { |
109 |
static struct cpu_nameclass i386_cpus[] = { |
| 90 |
{ "Intel 80286", CPUCLASS_286 }, /* CPU_286 */ |
110 |
{ "Intel 80286", CPUCLASS_286 }, /* CPU_286 */ |
| 91 |
{ "i386SX", CPUCLASS_386 }, /* CPU_386SX */ |
111 |
{ "i386SX", CPUCLASS_386 }, /* CPU_386SX */ |
|
Lines 580-585
Link Here
|
| 580 |
"\037<b30>" |
600 |
"\037<b30>" |
| 581 |
"\040<b31>" |
601 |
"\040<b31>" |
| 582 |
); |
602 |
); |
|
|
603 |
if (cpu_feature & 0x800000) |
| 604 |
featuresmmx = 1; |
| 605 |
if (cpu_feature & 0x2000000) |
| 606 |
features3dnow = 1; |
| 583 |
} |
607 |
} |
| 584 |
if (strcmp(cpu_vendor, "AuthenticAMD") == 0 && |
608 |
if (strcmp(cpu_vendor, "AuthenticAMD") == 0 && |
| 585 |
nreg >= 0x80000001) |
609 |
nreg >= 0x80000001) |
|
Lines 987-993
Link Here
|
| 987 |
"\034<b27>" |
1011 |
"\034<b27>" |
| 988 |
"\035<b28>" |
1012 |
"\035<b28>" |
| 989 |
"\036<b29>" |
1013 |
"\036<b29>" |
| 990 |
"\037DSP" /* AMD 3DNow! Instruction Extensions */ |
1014 |
"\037DSP" |
| 991 |
"\0403DNow!" |
1015 |
"\0403DNow!" /* AMD 3DNow! Instruction Extensions */ |
| 992 |
); |
1016 |
); |
|
|
1017 |
if (regs[3] & 0x80000000) |
| 1018 |
features3dnow = 1; |
| 993 |
} |
1019 |
} |