[dpdk-dev] [PATCH v4 04/52] common/cnxk: add roc plt init callback support
flat view
From: Nithin Dabilpuram <hidden>
Date: 2021-04-06 11:42:27
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Ashwin Sekhar T K <redacted> Add support for registering callbacks for roc plt init. Signed-off-by: Ashwin Sekhar T K <redacted> --- drivers/common/cnxk/roc_platform.c | 19 +++++++++++++++++++ drivers/common/cnxk/roc_platform.h | 4 ++++ drivers/common/cnxk/version.map | 1 + 3 files changed, 24 insertions(+)
diff --git a/drivers/common/cnxk/roc_platform.c b/drivers/common/cnxk/roc_platform.c
index 5baec95..3eba1a7 100644
--- a/drivers/common/cnxk/roc_platform.c
+++ b/drivers/common/cnxk/roc_platform.c@@ -4,10 +4,23 @@ #include "roc_api.h" +#define ROC_PLT_INIT_CB_MAX 8 + +static int plt_init_cb_num; +static roc_plt_init_cb_t plt_init_cbs[ROC_PLT_INIT_CB_MAX]; + +void +roc_plt_init_cb_register(roc_plt_init_cb_t cb) +{ + RTE_ASSERT(plt_init_cb_num < ROC_PLT_INIT_CB_MAX); + plt_init_cbs[plt_init_cb_num++] = cb; +} + int roc_plt_init(void) { const struct rte_memzone *mz; + int i, rc; mz = rte_memzone_lookup(PLT_MODEL_MZ_NAME); if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
@@ -29,5 +42,11 @@ roc_plt_init(void) roc_model = mz->addr; } + for (i = 0; i < plt_init_cb_num; i++) { + rc = (*plt_init_cbs[i])(); + if (rc) + return rc; + } + return 0; }
diff --git a/drivers/common/cnxk/roc_platform.h b/drivers/common/cnxk/roc_platform.h
index 1d06435..b358efe 100644
--- a/drivers/common/cnxk/roc_platform.h
+++ b/drivers/common/cnxk/roc_platform.h@@ -161,4 +161,8 @@ __rte_internal int roc_plt_init(void); +/* Init callbacks */ +typedef int (*roc_plt_init_cb_t)(void); +void __roc_api roc_plt_init_cb_register(roc_plt_init_cb_t cb); + #endif /* _ROC_PLATFORM_H_ */
diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map
index 1798b48..984feb3 100644
--- a/drivers/common/cnxk/version.map
+++ b/drivers/common/cnxk/version.map@@ -4,6 +4,7 @@ INTERNAL { roc_error_msg_get; roc_model; roc_plt_init; + roc_plt_init_cb_register; local: *; };
--
2.8.4