Rather than using INSTANCE_ID (constant 0xdeadbeef), the ODP main
instantiation process ID is used as instance ID in the linux-generic
implementation. This is a simple way to guarantee instance uniqueness
on linux systems.

Signed-off-by: Christophe Milard <christophe.mil...@linaro.org>
---
 platform/linux-generic/include/odp_internal.h | 1 -
 platform/linux-generic/odp_init.c             | 7 +++----
 platform/linux-generic/odp_traffic_mngr.c     | 3 ++-
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/platform/linux-generic/include/odp_internal.h 
b/platform/linux-generic/include/odp_internal.h
index 8bad450..3429781 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -25,7 +25,6 @@ extern "C" {
 
 extern __thread int __odp_errno;
 
-#define INSTANCE_ID    0xdeadbeef
 #define MAX_CPU_NUMBER 128
 
 typedef struct {
diff --git a/platform/linux-generic/odp_init.c 
b/platform/linux-generic/odp_init.c
index f534759..77f4f8a 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -116,8 +116,7 @@ int odp_init_global(odp_instance_t *instance,
                goto init_failed;
        }
 
-       /* Dummy support for single instance */
-       *instance = INSTANCE_ID;
+       *instance = (odp_instance_t)odp_global_data.main_pid;
 
        return 0;
 
@@ -128,7 +127,7 @@ init_failed:
 
 int odp_term_global(odp_instance_t instance)
 {
-       if (instance != INSTANCE_ID) {
+       if (instance != (odp_instance_t)odp_global_data.main_pid) {
                ODP_ERR("Bad instance.\n");
                return -1;
        }
@@ -250,7 +249,7 @@ int odp_init_local(odp_instance_t instance, 
odp_thread_type_t thr_type)
 {
        enum init_stage stage = NO_INIT;
 
-       if (instance != INSTANCE_ID) {
+       if (instance != (odp_instance_t)odp_global_data.main_pid) {
                ODP_ERR("Bad instance.\n");
                goto init_fail;
        }
diff --git a/platform/linux-generic/odp_traffic_mngr.c 
b/platform/linux-generic/odp_traffic_mngr.c
index 4fe07ef..85228cd 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -2317,7 +2317,8 @@ static void *tm_system_thread(void *arg)
        uint32_t destroying, work_queue_cnt, timer_cnt;
        int rc;
 
-       rc = odp_init_local(INSTANCE_ID, ODP_THREAD_WORKER);
+       rc = odp_init_local((odp_instance_t)odp_global_data.main_pid,
+                           ODP_THREAD_WORKER);
        ODP_ASSERT(rc == 0);
        tm_group = arg;
 
-- 
2.7.4

Reply via email to