diff options
Diffstat (limited to 'cpudetect.c')
-rw-r--r-- | cpudetect.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/cpudetect.c b/cpudetect.c index b2dea783f0..15151ae873 100644 --- a/cpudetect.c +++ b/cpudetect.c @@ -1,6 +1,8 @@ #include "config.h" #include "cpudetect.h" +CpuCaps gCpuCaps; + #ifdef ARCH_X86 #include <stdio.h> @@ -22,7 +24,6 @@ /* I believe this code works. However, it has only been used on a PII and PIII */ -CpuCaps gCpuCaps; static void check_os_katmai_support( void ); #if 1 @@ -83,7 +84,9 @@ void GetCpuCaps( CpuCaps *caps) { unsigned int regs[4]; unsigned int regs2[4]; - + + caps->isX86=1; + bzero(caps, sizeof(*caps)); if (!has_cpuid()) { printf("CPUID not supported!???\n"); @@ -94,7 +97,7 @@ void GetCpuCaps( CpuCaps *caps) if (regs[0]>=0x00000001) { char *tmpstr; - + do_cpuid(0x00000001, regs2); tmpstr=GetCpuFriendlyName(regs, regs2); @@ -142,7 +145,9 @@ void GetCpuCaps( CpuCaps *caps) caps->hasSSE=0; caps->hasSSE2 = 0; #endif - +// caps->has3DNow=1; +// caps->hasMMX2 = 0; +// caps->hasMMX = 0; } @@ -166,7 +171,7 @@ char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]){ } sprintf(vendor,"%.4s%.4s%.4s",®s[1],®s[3],®s[2]); - + for(i=0; i<MAX_VENDORS; i++){ if(!strcmp(cpuvendors[i].string,vendor)){ if(cpuname[i][CPUID_FAMILY][CPUID_MODEL]){ @@ -337,4 +342,17 @@ static void check_os_katmai_support( void ) gCpuCaps.hasSSE=0; #endif /* __linux__ */ } -#endif /* ARCH_X86 */ +#else /* ARCH_X86 */ + +void GetCpuCaps( CpuCaps *caps) +{ + caps->cpuType=0; + caps->hasMMX=0; + caps->hasMMX2=0; + caps->has3DNow=0; + caps->has3DNowExt=0; + caps->hasSSE=0; + caps->hasSSE2=0; + caps->isX86=0; +} +#endif /* !ARCH_X86 */ |