aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/arch/x86
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@nokia.com>2016-01-13 15:21:38 +0200
committerMaxim Uvarov <maxim.uvarov@linaro.org>2016-02-08 20:45:23 +0300
commit59128f5dc4cc831f569567917069b20ab045771e (patch)
treef8f426c66d660b41e6cbb72acfa09f9119ab4206 /platform/linux-generic/arch/x86
parent1613ad9696c742df2cc2dd487a715c77034592b8 (diff)
linux-generic: cpu: implemented pause
Implemented pause as an inline function in a cpu arch dependent header file. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> Conflicts: platform/linux-generic/Makefile.am
Diffstat (limited to 'platform/linux-generic/arch/x86')
-rw-r--r--platform/linux-generic/arch/x86/odp/cpu_arch.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/platform/linux-generic/arch/x86/odp/cpu_arch.h b/platform/linux-generic/arch/x86/odp/cpu_arch.h
new file mode 100644
index 000000000..997a95475
--- /dev/null
+++ b/platform/linux-generic/arch/x86/odp/cpu_arch.h
@@ -0,0 +1,27 @@
+/* Copyright (c) 2016, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef ODP_PLAT_CPU_ARCH_H_
+#define ODP_PLAT_CPU_ARCH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static inline void odp_cpu_pause(void)
+{
+#ifdef __SSE2__
+ __asm__ __volatile__ ("pause");
+#else
+ __asm__ __volatile__ ("rep; nop");
+#endif
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif