Don't store ODP global data in multiple locations, gather global data
into odp_global_data.
Move the static odp_system_info into odp_global_data

Signed-off-by: Mike Holmes <[email protected]>
---
 platform/linux-generic/include/odp_internal.h | 11 +++++++++
 platform/linux-generic/odp_system_info.c      | 33 +++++++++------------------
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/platform/linux-generic/include/odp_internal.h 
b/platform/linux-generic/include/odp_internal.h
index 0961cce..64dee42 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -22,9 +22,20 @@ extern "C" {
 
 extern __thread int __odp_errno;
 
+typedef struct {
+       uint64_t cpu_hz;
+       uint64_t huge_page_size;
+       uint64_t page_size;
+       int      cache_line_size;
+       int      cpu_count;
+       char     model_str[128];
+
+} odp_system_info_t;
+
 struct odp_global_data_s {
        odp_log_func_t log_fn;
        odp_abort_func_t abort_fn;
+       odp_system_info_t odp_system_info;
 };
 
 extern struct odp_global_data_s odp_global_data;
diff --git a/platform/linux-generic/odp_system_info.c 
b/platform/linux-generic/odp_system_info.c
index 6b6c723..cae310f 100644
--- a/platform/linux-generic/odp_system_info.c
+++ b/platform/linux-generic/odp_system_info.c
@@ -20,15 +20,7 @@
 #include <sys/types.h>
 #include <dirent.h>
 
-typedef struct {
-       uint64_t cpu_hz;
-       uint64_t huge_page_size;
-       uint64_t page_size;
-       int      cache_line_size;
-       int      cpu_count;
-       char     model_str[128];
 
-} odp_system_info_t;
 
 typedef struct {
        const char *cpu_arch_str;
@@ -36,9 +28,6 @@ typedef struct {
 
 } odp_compiler_info_t;
 
-static odp_system_info_t odp_system_info;
-
-
 #define CACHE_LNSZ_FILE \
        "/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size"
 
@@ -310,7 +299,7 @@ static int systemcpu(odp_system_info_t *sysinfo)
                return -1;
        }
 
-       odp_system_info.huge_page_size = huge_page_size();
+       odp_global_data.odp_system_info.huge_page_size = huge_page_size();
 
        return 0;
 }
@@ -354,9 +343,9 @@ int odp_system_info_init(void)
 {
        FILE  *file;
 
-       memset(&odp_system_info, 0, sizeof(odp_system_info_t));
+       memset(&odp_global_data.odp_system_info, 0, sizeof(odp_system_info_t));
 
-       odp_system_info.page_size = ODP_PAGE_SIZE;
+       odp_global_data.odp_system_info.page_size = ODP_PAGE_SIZE;
 
        file = fopen("/proc/cpuinfo", "rt");
        if (file == NULL) {
@@ -364,11 +353,11 @@ int odp_system_info_init(void)
                return -1;
        }
 
-       compiler_info.cpuinfo_parser(file, &odp_system_info);
+       compiler_info.cpuinfo_parser(file, &odp_global_data.odp_system_info);
 
        fclose(file);
 
-       if (systemcpu(&odp_system_info)) {
+       if (systemcpu(&odp_global_data.odp_system_info)) {
                ODP_ERR("systemcpu failed\n");
                return -1;
        }
@@ -383,30 +372,30 @@ int odp_system_info_init(void)
  */
 uint64_t odp_sys_cpu_hz(void)
 {
-       return odp_system_info.cpu_hz;
+       return odp_global_data.odp_system_info.cpu_hz;
 }
 
 uint64_t odp_sys_huge_page_size(void)
 {
-       return odp_system_info.huge_page_size;
+       return odp_global_data.odp_system_info.huge_page_size;
 }
 
 uint64_t odp_sys_page_size(void)
 {
-       return odp_system_info.page_size;
+       return odp_global_data.odp_system_info.page_size;
 }
 
 const char *odp_sys_cpu_model_str(void)
 {
-       return odp_system_info.model_str;
+       return odp_global_data.odp_system_info.model_str;
 }
 
 int odp_sys_cache_line_size(void)
 {
-       return odp_system_info.cache_line_size;
+       return odp_global_data.odp_system_info.cache_line_size;
 }
 
 int odp_cpu_count(void)
 {
-       return odp_system_info.cpu_count;
+       return odp_global_data.odp_system_info.cpu_count;
 }
-- 
2.1.0

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to