ping - this consolidates the global data making the helper and other
platform specific clean up easier.

On 1 April 2015 at 18:29, Mike Holmes <[email protected]> wrote:

> 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
>
>


-- 
Mike Holmes
Technical Manager - Linaro Networking Group
Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to