aboutsummaryrefslogtreecommitdiffstats
path: root/erts/lib_src/win/ethread.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2011-07-08 13:56:10 +0200
committerRickard Green <[email protected]>2011-07-08 13:56:10 +0200
commitc6bc815813f57fb7dfffe704c31a4124a0fe755e (patch)
tree6d142c893ee4e9f800b094bba26537147cf5b2de /erts/lib_src/win/ethread.c
parent5c62fdc1914000f3da921c82a82b6dc30783db53 (diff)
parent0204e80cba378dfc1140a7f98d96705d470bddde (diff)
downloadotp-c6bc815813f57fb7dfffe704c31a4124a0fe755e.tar.gz
otp-c6bc815813f57fb7dfffe704c31a4124a0fe755e.tar.bz2
otp-c6bc815813f57fb7dfffe704c31a4124a0fe755e.zip
Merge branch 'rickard/atomics-api/OTP-9014' into major
* rickard/atomics-api/OTP-9014: Use new atomic API in runtime system Improve ethread atomics
Diffstat (limited to 'erts/lib_src/win/ethread.c')
-rw-r--r--erts/lib_src/win/ethread.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/erts/lib_src/win/ethread.c b/erts/lib_src/win/ethread.c
index 789a360b11..3abda6de4c 100644
--- a/erts/lib_src/win/ethread.c
+++ b/erts/lib_src/win/ethread.c
@@ -1,7 +1,7 @@
/*
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2010. All Rights Reserved.
+ * Copyright Ericsson AB 2010-2011. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -35,6 +35,7 @@
#include <winerror.h>
#include <stdio.h>
#include <limits.h>
+#include <intrin.h>
#define ETHR_INLINE_FUNC_NAME_(X) X ## __
#define ETHREAD_IMPL__
@@ -158,6 +159,25 @@ ethr_abort__(void)
#endif
}
+#if defined(ETHR_X86_RUNTIME_CONF__)
+
+#pragma intrinsic(__cpuid)
+
+void
+ethr_x86_cpuid__(int *eax, int *ebx, int *ecx, int *edx)
+{
+ int CPUInfo[4];
+
+ __cpuid(CPUInfo, *eax);
+
+ *eax = CPUInfo[0];
+ *ebx = CPUInfo[1];
+ *ecx = CPUInfo[2];
+ *edx = CPUInfo[3];
+}
+
+#endif /* ETHR_X86_RUNTIME_CONF__ */
+
/*
* ----------------------------------------------------------------------------
* Exported functions