diff options
author | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-21 15:00:21 -0500 |
---|---|---|
committer | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-21 15:00:21 -0500 |
commit | 69a2124e9a081518297951256eb5c8d72d93361f (patch) | |
tree | a9c40c44629adcbee33aba69186a3c5b31cc4c71 /modules/devices/arm/processor.c | |
parent | d1e18216836396a7791db7993287d21611faf69d (diff) |
New upstream version 0.5.1+git20170620
Diffstat (limited to 'modules/devices/arm/processor.c')
-rw-r--r-- | modules/devices/arm/processor.c | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/modules/devices/arm/processor.c b/modules/devices/arm/processor.c index c94f41e5..ad7adf7f 100644 --- a/modules/devices/arm/processor.c +++ b/modules/devices/arm/processor.c @@ -34,24 +34,6 @@ static const gchar *arm_mode_str[] = { "A32 on A64", }; -GHashTable *cpu_flags = NULL; /* FIXME: when is it freed? */ - -static void -populate_cpu_flags_list_internal() -{ - int i; - gchar **afl, *fm; - - cpu_flags = g_hash_table_new(g_str_hash, g_str_equal); - afl = g_strsplit(arm_flag_list(), " ", 0); - while(afl[i] != NULL) { - fm = (char *)arm_flag_meaning(afl[i]); - if (g_strcmp0(afl[i], "") != 0) - g_hash_table_insert(cpu_flags, afl[i], (fm) ? fm : ""); - i++; - } -} - static gint get_cpu_int(const gchar* file, gint cpuid) { gchar *tmp0 = NULL; gchar *tmp1 = NULL; @@ -184,9 +166,10 @@ processor_scan(void) processor = (Processor *) pi->data; /* strings can't be null or segfault later */ -#define UNKIFNULL(f) if (processor->f == NULL) processor->f = g_strdup("(Unknown)"); -#define EMPIFNULL(f) if (processor->f == NULL) processor->f = g_strdup(""); - UNKIFNULL(model_name); +#define STRIFNULL(f,cs) if (processor->f == NULL) processor->f = g_strdup(cs); +#define UNKIFNULL(f) STRIFNULL(f, "(Unknown)") +#define EMPIFNULL(f) STRIFNULL(f, "") + STRIFNULL(model_name, "ARM Processor"); EMPIFNULL(flags); UNKIFNULL(cpu_implementer); UNKIFNULL(cpu_architecture); @@ -198,6 +181,7 @@ processor_scan(void) processor->cpu_implementer, processor->cpu_part, processor->cpu_variant, processor->cpu_revision, processor->cpu_architecture, processor->model_name); + UNKIFNULL(decoded_name); /* freq */ processor->cpukhz_cur = get_cpu_int("cpufreq/scaling_cur_freq", processor->id); @@ -229,14 +213,11 @@ gchar *processor_get_capabilities_from_flags(gchar * strflags) gchar *tmp = NULL; gint j = 0; - if (!cpu_flags) - populate_cpu_flags_list_internal(); - flags = g_strsplit(strflags, " ", 0); old = flags; while (flags[j]) { - gchar *meaning = g_hash_table_lookup(cpu_flags, flags[j]); + const gchar *meaning = arm_flag_meaning( flags[j] ); if (meaning) { tmp = h_strdup_cprintf("%s=%s\n", tmp, flags[j], meaning); @@ -255,10 +236,12 @@ gchar *processor_get_capabilities_from_flags(gchar * strflags) gchar * processor_get_detailed_info(Processor *processor) { - gchar *tmp_flags, *tmp_imp, *tmp_part, *ret; + gchar *tmp_flags, *tmp_imp, *tmp_part, *tmp_arch, *ret; tmp_flags = processor_get_capabilities_from_flags(processor->flags); tmp_imp = (char*)arm_implementer(processor->cpu_implementer); - tmp_part = (char *)arm_part(processor->cpu_implementer, processor->cpu_part); + tmp_part = (char*)arm_part(processor->cpu_implementer, processor->cpu_part); + tmp_arch = (char*)arm_arch_more(processor->cpu_architecture); + ret = g_strdup_printf("[Processor]\n" "Linux Name=%s\n" "Decoded Name=%s\n" @@ -278,7 +261,7 @@ processor_get_detailed_info(Processor *processor) "[ARM]\n" "Implementer=[%s] %s\n" "Part=[%s] %s\n" - "Architecture=%s\n" + "Architecture=[%s] %s\n" "Variant=%s\n" "Revision=%s\n" "[Capabilities]\n" @@ -293,12 +276,13 @@ processor_get_detailed_info(Processor *processor) processor->cpukhz_cur, processor->cpu_implementer, (tmp_imp) ? tmp_imp : "", processor->cpu_part, (tmp_part) ? tmp_part : "", - processor->cpu_architecture, + processor->cpu_architecture, (tmp_arch) ? tmp_arch : "", processor->cpu_variant, processor->cpu_revision, tmp_flags, ""); g_free(tmp_flags); + return ret; } |