Index: runtime/vm/cpuid.h |
=================================================================== |
--- runtime/vm/cpuid.h (revision 0) |
+++ runtime/vm/cpuid.h (revision 0) |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+#ifndef VM_CPUID_H_ |
+#define VM_CPUID_H_ |
+ |
+#include "vm/globals.h" |
+#if !defined(TARGET_OS_MACOS) |
+#include "vm/allocation.h" |
+#include "vm/cpuinfo.h" |
+ |
+namespace dart { |
+ |
+class CpuId : public AllStatic { |
+ public: |
+#if defined(HOST_ARCH_IA32) || defined(HOST_ARCH_X64) |
+ static void InitOnce(); |
+ static void Cleanup(); |
+ |
+ // Caller must free the result of field. |
+ static const char* field(CpuInfoIndices idx); |
+#else |
+ static void InitOnce() {} |
+ static void Cleanup() {} |
+ static const char* field(CpuInfoIndices idx) { return NULL; } |
+#endif |
+ |
+ static bool sse2() { return sse2_; } |
+ static bool sse41() { return sse41_; } |
+ |
+ // Caller must free the result of id_string and brand_string. |
+ static const char* id_string(); |
+ static const char* brand_string(); |
+ |
+ private: |
+ static bool sse2_; |
+ static bool sse41_; |
+ static const char* id_string_; |
+ static const char* brand_string_; |
+ |
+ static void GetCpuId(int32_t level, uint32_t info[4]); |
+}; |
+ |
+} // namespace dart |
+ |
+#endif // !defined(TARGET_OS_MACOS) |
+#endif // VM_CPUID_H_ |