1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
--- CONFIG/src/backend/archinfo_freebsd.c.orig 2011-05-14 13:33:24.000000000 -0400
+++ CONFIG/src/backend/archinfo_freebsd.c 2011-09-20 07:05:52.000000000 -0400
@@ -62,7 +62,7 @@
switch(fam)
{
case AFPPC: /* don't know */
- if (!CmndOneLine(NULL, "sysctl hw.model", res))
+ if (!CmndOneLine(NULL, "sysctl -n hw.model", res))
{
if (strstr(res, "PowerMac"))
{
@@ -97,32 +97,57 @@
}
}
break;
- case AFSPARC: /* don't know */
- break;
- case AFALPHA:
- #if 0
- if (!CmndOneLine(NULL, "sysctl hw.model", res))
+ case AFSPARC: /* from src/sys/sparc64/sparc64/identcpu.c */
+ if (!CmndOneLine(NULL, "sysctl -n hw.model", res))
{
- if (strstr(res, "433au")) mach = Dec21164;
- else if (strstr(res, "XP1000")) mach = Dec21264;
+ if (strstr(res, "UltraSparc-IV")) mach = SunUSIV;
+ else if (strstr(res, "UltraSparc-III")) mach = SunUSIII;
+ else if (strstr(res, "UltraSparc-II")) mach = SunUSII;
+ else mach = SunUSI;
}
- #endif
break;
- case AFIA64: /* don't know */
+ case AFIA64: /* from src/sys/ia64/ia64/machdep.c */
+ if (!CmndOneLine(NULL, "sysctl -n hw.model", res))
+ {
+ if (strstr(res, "Deerfield")) mach = IA64Itan2;
+ else if (strstr(res, "McKinley")) mach = IA64Itan2;
+ else if (strstr(res, "Madison")) mach = IA64Itan2;
+ else if (strstr(res, "Montecito")) mach = IA64Itan2;
+ else if (strstr(res, "Montvale")) mach = IA64Itan2;
+ else if (strstr(res, "Merced")) mach = IA64Itan;
+ }
break;
case AFX86:
- if (!CmndOneLine(NULL, "sysctl hw.model", res))
+ if (!CmndOneLine(NULL, "sysctl -n hw.model", res))
{
if (strstr(res, "Pentium Pro")) mach = IntPPRO;
+ else if (strstr(res, "Pentium(R) D")) mach = IntP4E;
+ else if (strstr(res, "Pentium(R) Pro")) mach = IntPPRO;
+ else if (strstr(res, "Pentium 4")) mach = IntP4;
+ else if (strstr(res, "Pentium(R) 4")) mach = IntP4;
+ else if (strstr(res, "Pentium(R) M")) mach = IntP4;
else if (strstr(res, "Pentium III")) mach = IntPIII;
else if (strstr(res, "Pentium II ")) mach = IntPII;
else if (strstr(res, "Athlon")) mach = AmdAthlon;
+ else if (strstr(res, "Pentium III/Pentium III")) mach = IntPIII;
+ else if (strstr(res, "Pentium(R) III")) mach = IntPIII;
+ else if (strstr(res, "Pentium II")) mach = IntPII;
+ else if (strstr(res, "Pentium II/PentiumII")) mach = IntPII;
+ else if (strstr(res, "Pentium(R) II ")) mach = IntPII;
+ else if (strstr(res, "Celeron")) mach = IntPII;
+ else if (strstr(res, "Celeron(R)")) mach = IntPII;
+ else if (strstr(res, "Opteron(tm)")) mach = AmdHammer;
+ else if (strstr(res, "AMD Athlon(tm) 64")) mach = AmdHammer;
else if (strstr(res, "AMD-K7")) mach = AmdAthlon;
- else if (strstr(res, "32 bit Hammer")) mach = AmdHammer;
- else if (strstr(res, "64 bit Hammer")) mach = AmdHammer;
- else if (strstr(res, "Pentium/P55C")) mach = IntP5MMX; /* sent by */
- else if (strstr(res, "Pentium")) mach=IntP5; /* Nakata Maho */
else if (strstr(res, "iMac4,1")) mach=IntCoreDuo;
+ else if (strstr(res, "Sempron(tm)")) mach = AmdAthlon;
+ else if (strstr(res, "AMD-K6(tm)")) mach = IntP5MMX;
+ else if (strstr(res, "Pentium/P55C")) mach = IntP5MMX;
+ else if (strstr(res, "Pentium/P54C")) mach=IntP5;
+ else if (strstr(res, "Pentium")) mach=IntP5;
+ else if (strstr(res, "VIA")) mach=IntP5MMX;
+ else if (strstr(res, "Crusoe(tm)")) mach=IntP5MMX;
+ else mach = IntP5;
}
break;
default:;
@@ -135,7 +160,7 @@
int ncpu = 0;
char *reslns, res[1024];
- if (!CmndOneLine(NULL, "sysctl hw.ncpu", res)) ncpu = GetLastInt(res);
+ if (!CmndOneLine(NULL, "sysctl -n hw.ncpu", res)) ncpu = GetFirstInt(res);
return(ncpu);
}
@@ -169,7 +194,8 @@
* If uname is a known 64-bit platform, we're sure we've got OS support
* for 64bits (may not have compiler support, but that's not our fault)
*/
- if (strstr(res, "x86_64") || strstr(res, "ppc64") || strstr(res, "ia64"))
+ if (strstr(res, "amd64") || strstr(res, "ia64") ||
+ strstr(res, "powerpc64") || strstr(res, "sparc64"))
{
iret = 64;
*sure = 1;
@@ -182,8 +208,10 @@
{
int mhz=0;
char res[1024];
- if (!CmndOneLine(NULL, "sysctl hw.cpufrequency", res) )
- mhz = GetFirstDouble(res) / 1000000;
+ if (!CmndOneLine(NULL, "sysctl -n dev.cpu.0.freq", res) )
+ mhz = GetFirstInt(res);
+ else if (!CmndOneLine(NULL, "sysctl -n hw.freq.cpu", res) )
+ mhz = GetFirstInt(res);
return(mhz);
}
@@ -192,20 +220,7 @@
* RETURNS: 1 if cpu throttling is detected, 0 otherwise
*/
{
- int iret=0;
- int imax=0, imin=0, icur=0;
- char res[1024];
-
- if (!CmndOneLine(NULL, "sysctl hw.cpufrequency_max", res) )
- imax = GetFirstInt(res);
- if (!CmndOneLine(NULL, "sysctl hw.cpufrequency_min", res) )
- imin = GetFirstInt(res);
- if (imax)
- {
- if (imax != imin)
- iret = 1;
- }
- return(iret);
+ return(0);
}
main(int nargs, char **args)
|