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
