From: Barry Spinney <spin...@ezchip.com>
This patch adds a call from odp_init.c to _odp_int_name_tbl_init().
Signed-off-by: Barry Spinney <spin...@ezchip.com>
Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
---
platform/linux-generic/include/odp_internal.h | 9 +++++++--
.../include/odp_name_table_internal.h | 3 ++-
.../include/odp_timer_wheel_internal.h | 8 ++++----
platform/linux-generic/odp_init.c | 23 ++++++++++++++++++++--
platform/linux-generic/odp_name_table.c | 9 ++++++++-
5 files changed, 42 insertions(+), 10 deletions(-)
diff --git a/platform/linux-generic/include/odp_internal.h
b/platform/linux-generic/include/odp_internal.h
index d7b71ca..98d6f25 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -4,7 +4,6 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
-
/**
* @file
*
@@ -55,7 +54,9 @@ enum init_stage {
TIMER_INIT = 9,
CRYPTO_INIT = 10,
CLASSIFICATION_INIT = 11,
- ALL_INIT = 12 /* All init stages completed */
+ TRAFFIC_MNGR_INIT = 12,
+ NAME_TABLE_INIT = 13,
+ ALL_INIT /* All init stages completed */
};
extern struct odp_global_data_s odp_global_data;
@@ -106,6 +107,10 @@ int odp_time_init_global(void);
int odp_time_term_global(void);
int odp_tm_init_global(void);
+int odp_tm_term_global(void);
+
+int _odp_int_name_tbl_init_global(void);
+int _odp_int_name_tbl_term_global(void);
void _odp_flush_caches(void);
diff --git a/platform/linux-generic/include/odp_name_table_internal.h b/platform/linux-generic/include/odp_name_table_internal.h
index e9a85da..21ae42d 100644
--- a/platform/linux-generic/include/odp_name_table_internal.h
+++ b/platform/linux-generic/include/odp_name_table_internal.h
@@ -52,7 +52,8 @@ uint64_t _odp_int_name_tbl_user_data(_odp_int_name_t
odp_name);
void _odp_int_name_tbl_stats_print(void);
-void _odp_int_name_tbl_init(void);
+int _odp_int_name_tbl_init_global(void);
+int _odp_int_name_tbl_term_global(void);
#ifdef __cplusplus
}
diff --git a/platform/linux-generic/include/odp_timer_wheel_internal.h
b/platform/linux-generic/include/odp_timer_wheel_internal.h
index 0e5828f..54abb77 100644
--- a/platform/linux-generic/include/odp_timer_wheel_internal.h
+++ b/platform/linux-generic/include/odp_timer_wheel_internal.h
@@ -16,15 +16,15 @@ extern "C" {
#include <stdint.h>
#include <odp_api.h>
-/* Note that ALL times in this API are in units of processor/cpu clock
- * cycles!
- */
typedef uint64_t _odp_timer_wheel_t;
#define _ODP_INT_TIMER_WHEEL_INVALID 0
_odp_timer_wheel_t _odp_timer_wheel_create(uint32_t max_concurrent_timers,
- uint64_t current_time);
+ void *tm_system);
+
+void _odp_timer_wheel_start(_odp_timer_wheel_t timer_wheel,
+ uint64_t current_time);
/* _odp_int_timer_wheel_curr_time_update should be called before the first
* call to _odp_int_timer_wheel_insert, _odp_int_timer_wheel_next, etc..
diff --git a/platform/linux-generic/odp_init.c
b/platform/linux-generic/odp_init.c
index a8c91a5..22edce3 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -93,7 +93,13 @@ int odp_init_global(const odp_init_t *params,
if (odp_tm_init_global()) {
ODP_ERR("ODP traffic manager init failed\n");
- return -1;
+ goto init_failed;
+ }
+ stage = TRAFFIC_MNGR_INIT;
+
+ if (_odp_int_name_tbl_init_global()) {
+ ODP_ERR("ODP name table init failed\n");
+ goto init_failed;
}
return 0;
@@ -114,10 +120,23 @@ int _odp_term_global(enum init_stage stage)
switch (stage) {
case ALL_INIT:
+ case NAME_TABLE_INIT:
+ if (_odp_int_name_tbl_term_global()) {
+ ODP_ERR("Name table term failed.\n");
+ rc = -1;
+ }
+ /* Fall through */
+
+ case TRAFFIC_MNGR_INIT:
+ if (odp_tm_term_global()) {
+ ODP_ERR("TM term failed.\n");
+ rc = -1;
+ }
+ /* Fall through */
case CLASSIFICATION_INIT:
if (odp_classification_term_global()) {
- ODP_ERR("ODP classificatio term failed.\n");
+ ODP_ERR("ODP classification term failed.\n");
rc = -1;
}
/* Fall through */
diff --git a/platform/linux-generic/odp_name_table.c
b/platform/linux-generic/odp_name_table.c
index 610f034..1e43a2c 100644
--- a/platform/linux-generic/odp_name_table.c
+++ b/platform/linux-generic/odp_name_table.c
@@ -1181,7 +1181,7 @@ void _odp_int_name_tbl_stats_print(void)
#endif
}
-void _odp_int_name_tbl_init(void)
+int _odp_int_name_tbl_init_global(void)
{
name_tbl_t *new_name_tbl;
@@ -1196,4 +1196,11 @@ void _odp_int_name_tbl_init(void)
name_tbls.avail_space_bit_mask |= 1;
name_tbls.num_name_tbls = 1;
name_tbls_initialized = 1;
+
+ return 0;
+}
+
+int _odp_int_name_tbl_term_global(void)
+{
+ return 0;
}