changeset 3146:3164eaa93396

non x86 fix (otherwise we would need #ifdef ARCH_X86 around every if(gCpuCaps.has...))
author michael
date Mon, 26 Nov 2001 23:08:48 +0000
parents 78e11396f431
children 5da6e1b6c93e
files cpudetect.c cpudetect.h
diffstat 2 files changed, 28 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/cpudetect.c	Mon Nov 26 21:55:22 2001 +0000
+++ b/cpudetect.c	Mon Nov 26 23:08:48 2001 +0000
@@ -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 @@
 {
 	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 @@
 	if (regs[0]>=0x00000001)
 	{
 		char *tmpstr;
-		
+
 		do_cpuid(0x00000001, regs2);
 
 		tmpstr=GetCpuFriendlyName(regs, regs2);
@@ -142,7 +145,9 @@
 		caps->hasSSE=0;
 		caps->hasSSE2 = 0;
 #endif
-
+//		caps->has3DNow=1;
+//		caps->hasMMX2 = 0;
+//		caps->hasMMX = 0;
 
 }
 
@@ -166,7 +171,7 @@
 	}
 
 	sprintf(vendor,"%.4s%.4s%.4s",&regs[1],&regs[3],&regs[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 @@
    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 */
--- a/cpudetect.h	Mon Nov 26 21:55:22 2001 +0000
+++ b/cpudetect.h	Mon Nov 26 23:08:48 2001 +0000
@@ -1,4 +1,5 @@
-#ifdef ARCH_X86
+#ifndef CPUDETECT_H
+#define CPUDETECT_H
 
 #define CPUTYPE_I386	3
 #define CPUTYPE_I486	4
@@ -13,6 +14,7 @@
 	int has3DNowExt;
 	int hasSSE;
 	int hasSSE2;
+	int isX86;
 } CpuCaps;
 
 extern CpuCaps gCpuCaps;
@@ -22,5 +24,5 @@
 /* returned value is malloc()'ed so free() it after use */
 char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]);
 
-#endif /* ARCH_X86 */
+#endif /* !CPUDETECT_H */