aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-keystone2/odp_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-keystone2/odp_init.c')
-rw-r--r--platform/linux-keystone2/odp_init.c50
1 files changed, 31 insertions, 19 deletions
diff --git a/platform/linux-keystone2/odp_init.c b/platform/linux-keystone2/odp_init.c
index f832551..de28fda 100644
--- a/platform/linux-keystone2/odp_init.c
+++ b/platform/linux-keystone2/odp_init.c
@@ -90,7 +90,7 @@ static int ti_init_hw_config(void)
}
-int odp_init_global(void)
+int odp_init_global(uint8_t mask)
{
odp_thread_init_global();
@@ -99,34 +99,46 @@ int odp_init_global(void)
ti_em_osal_core_init_global();
ti_init_hw_config();
- if (odp_shm_init_global()) {
- ODP_ERR("ODP shm init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_SHMINIT) {
+ if (odp_shm_init_global()) {
+ ODP_ERR("ODP shm init failed.\n");
+ return -1;
+ }
}
- if (odp_buffer_pool_init_global()) {
- ODP_ERR("ODP buffer pool init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_GPOOL) {
+ if (odp_buffer_pool_init_global()) {
+ ODP_ERR("ODP buffer pool init failed.\n");
+ return -1;
+ }
}
- if (odp_queue_init_global()) {
- ODP_ERR("ODP queue init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_GQUEUE) {
+ if (odp_queue_init_global()) {
+ ODP_ERR("ODP queue init failed.\n");
+ return -1;
+ }
}
- if (odp_schedule_init_global()) {
- ODP_ERR("ODP schedule init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_SCHEDULE) {
+ if (odp_schedule_init_global()) {
+ ODP_ERR("ODP schedule init failed.\n");
+ return -1;
+ }
}
- if (odp_pktio_init_global()) {
- ODP_ERR("ODP packet io init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_PKTIO) {
+ if (odp_pktio_init_global()) {
+ ODP_ERR("ODP packet io init failed.\n");
+ return -1;
+ }
}
- if (odp_timer_init_global()) {
- ODP_ERR("ODP timer init failed.\n");
- return -1;
+ if (mask & ODP_INIT_F_TIMER) {
+ if (odp_timer_init_global()) {
+ ODP_ERR("ODP timer init failed.\n");
+ return -1;
+ }
}
return 0;