commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mt...@apache.org
Subject svn commit: r763666 - /commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c
Date Thu, 09 Apr 2009 14:35:09 GMT
Author: mturk
Date: Thu Apr  9 14:35:09 2009
New Revision: 763666

URL: http://svn.apache.org/viewvc?rev=763666&view=rev
Log:
Use Mac sysctlbyname

Modified:
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c

Modified: commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c?rev=763666&r1=763665&r2=763666&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c Thu Apr  9 14:35:09 2009
@@ -18,6 +18,8 @@
 #include "acr_private.h"
 #include <sys/utsname.h>
 #include <sys/sysctl.h>
+#include <mach/machine.h>
+#include <mach-o/arch.h>
 
 #define MAXSIZESYSSTRING 256
 static const char unknown[] = "unknown";
@@ -90,9 +92,18 @@
     size_t s = sizeof(string);
     int mib[] = { CTL_HW, HW_MACHINE_ARCH };
 
-    if (sysctl(mib, 2, string, &s, 0, 0) < 0)
-        return CSTR_TO_JSTRING(unknown);
-     else
+    if (sysctl(mib, 2, string, &s, 0, 0) < 0) {
+        cpu_type_t cpu;
+        NXArchInfo const *ai;
+
+        s = sizeof(cpu_type_t);
+        if ((sysctlbyname("hw.cputype", &cpu, &s, NULL, 0) == 0) &&
+            (ai = NXGetArchInfoFromCpuType(cpu, CPU_SUBTYPE_MULTIPLE)) != NULL)
+            return CSTR_TO_JSTRING(ai->name);
+        else
+            return CSTR_TO_JSTRING(unknown);
+    }
+    else
         return CSTR_TO_JSTRING(string);
 }
 



Mime
View raw message