< prev index next >

src/hotspot/os_cpu/bsd_x86/os_bsd_x86.cpp

Print this page

        

@@ -799,10 +799,22 @@
 
   return addr != NULL;
 #endif // AMD64
 }
 
+juint os::cpu_microcode_revision() {
+  juint result = 0;
+  char data[8];
+  size_t sz = sizeof(data);
+  int ret = sysctlbyname("machdep.cpu.microcode_version", data, &sz, NULL, 0);
+  if (ret == 0) {
+    if (sz == 4) result = *((juint*)data);
+    if (sz == 8) result = *((juint*)data + 1); // upper 32-bits
+  }
+  return result;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // thread stack
 
 // Minimum usable stack sizes required to get to user code. Space for
 // HotSpot guard pages is added later.
< prev index next >