[2/6] eal: Add header files to support windows
Checks
Commit Message
Added header files to support windows on x86 platforms.
Updated rte_config to include rte_windows.h for windows
build.
Signed-off-by: Anand Rawat <anand.rawat@intel.com>
Signed-off-by: Kadam, Pallavi <pallavi.kadam@intel.com>
Reviewed-by: Jeffrey B Shaw <jeffrey.b.shaw@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
---
config/rte_config.h | 15 +++++++++++-
.../common/include/arch/x86/meson.build | 7 ++++++
.../include/arch/x86/winapp/rte_atomic.h | 19 +++++++++++++++
.../include/arch/x86/winapp/rte_pause.h | 22 ++++++++++++++++++
.../winapp/eal/include/exec-env/rte_windows.h | 23 +++++++++++++++++++
lib/librte_eal/winapp/eal/meson.build | 5 +++-
6 files changed, 89 insertions(+), 2 deletions(-)
create mode 100644 lib/librte_eal/common/include/arch/x86/winapp/rte_atomic.h
create mode 100644 lib/librte_eal/common/include/arch/x86/winapp/rte_pause.h
create mode 100644 lib/librte_eal/winapp/eal/include/exec-env/rte_windows.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017 Intel Corporation
+ * Copyright(c) 2019 Intel Corporation
*/
/**
@@ -20,6 +20,10 @@
/****** library defines ********/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* compat defines */
#define RTE_BUILD_SHARED_LIB
@@ -118,4 +122,13 @@
/* QEDE PMD defines */
#define RTE_LIBRTE_QEDE_FW ""
+/* windows specific*/
+#ifdef RTE_EXEC_ENV_WINDOWS
+#include <rte_windows.h>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _RTE_CONFIG_H_ */
@@ -21,4 +21,11 @@ if host_machine.system() != 'windows'
'rte_vect.h',
subdir: get_option('include_subdir_arch')
)
+else
+ # get and install the architecture specific windows headers
+ windows_headers = files(
+ 'winapp/rte_atomic.h',
+ 'winapp/rte_pause.h'
+ )
+ install_headers(windows_headers, subdir: 'winapp')
endif
new file mode 100644
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _ATOMIC_H_
+#define _ATOMIC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define rte_rmb() _mm_lfence()
+#define rte_wmb() _mm_sfence()
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ATOMIC_H_ */
new file mode 100644
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _PAUSE_H_
+#define _PAUSE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static inline void
+rte_pause(void)
+{
+ _mm_pause();
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PAUSE_H_ */
new file mode 100644
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2019 Intel Corporation
+ */
+
+#ifndef _RTE_WINDOWS_H_
+#define _RTE_WINDOWS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define __extension__
+#define __thread __declspec(thread)
+
+#define strerror_r(a, b, c) strerror_s(b, c, a)
+
+typedef void *ssize_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_WINDOWS_H_ */
@@ -1,10 +1,13 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2019 Intel Corporation
+eal_inc += include_directories('include/exec-env')
+install_subdir('include/exec-env', install_dir: get_option('includedir'))
+
env_objs = []
env_headers = []
env_sources = files('eal.c',
'eal_debug.c',
'eal_lcore.c',
'eal_thread.c',
-)
+)
\ No newline at end of file