[dpdk-dev] [PATCH v2] eal: change init macro as exec environment specific
Jerin Jacob Kollanukkaran
jerinj at marvell.com
Wed Apr 3 21:28:40 CEST 2019
From: Jerin Jacob <jerinj at marvell.com>
baremetal execution environments may have a different
method to enable RTE_INIT instead of using compiler
constructor and/or OS specific linker scheme.
Allow an option to override RTE_INIT* macros using
rte_os.h or appropriate header file.
Signed-off-by: Jerin Jacob <jerinj at marvell.com>
---
v2:
- Leverage the rte_os.h created by Windows port to override RTE_INIT* macro if needed.
- Removed the exec environment specific librte_eal/<OS>/eal/include/exec-env/rte_exec-env.h
file creation
- Removed the duplication of RTE_INIT_* definition on each rte_exec-env.h file
as it is common for Linux,FreeBSD and Windows port
---
lib/librte_eal/common/include/rte_common.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 1d3c33021..f2691b4e1 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -106,8 +106,10 @@ typedef uint16_t unaligned_uint16_t;
* Priority number must be above 100.
* Lowest number is the first to run.
*/
+#ifndef RTE_INIT_PRIO /* Allow to override from eal */
#define RTE_INIT_PRIO(func, prio) \
static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
+#endif
/**
* Run function before main() with low priority.
@@ -129,8 +131,10 @@ static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
* Priority number must be above 100.
* Lowest number is the last to run.
*/
+#ifndef RTE_FINI_PRIO /* Allow to override from eal */
#define RTE_FINI_PRIO(func, prio) \
static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void)
+#endif
/**
* Run after main() with high priority.
--
2.21.0
More information about the dev
mailing list