diff options
| author | Burt P <pburt0@gmail.com> | 2017-06-26 09:33:37 -0500 | 
|---|---|---|
| committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2017-06-26 09:27:15 -0700 | 
| commit | 62d230e4188528d2d71206ec2ae2f75e26000649 (patch) | |
| tree | 7d27c4842ac94e67d1f810358fa8f8e67c646198 /modules/devices | |
| parent | bed7c60250a046670704d3d0cf436a651a47569c (diff) | |
arm,x86: Don't show frequency scaling information if it isn't available
Hide Frequency Scaling section instead of showing zeroes.
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules/devices')
| -rw-r--r-- | modules/devices/arm/processor.c | 60 | ||||
| -rw-r--r-- | modules/devices/x86/processor.c | 60 | 
2 files changed, 76 insertions, 44 deletions
| diff --git a/modules/devices/arm/processor.c b/modules/devices/arm/processor.c index 51fd8fc7..188b9c0d 100644 --- a/modules/devices/arm/processor.c +++ b/modules/devices/arm/processor.c @@ -253,12 +253,43 @@ gchar *processor_get_capabilities_from_flags(gchar * strflags)  gchar *  processor_get_detailed_info(Processor *processor)  { -    gchar *tmp_flags, *tmp_imp, *tmp_part, *tmp_arch, *ret; +    gchar *tmp_flags, *tmp_imp, *tmp_part, *tmp_arch, *tmp_cpufreq, *tmp_topology, *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_arch = (char*)arm_arch_more(processor->cpu_architecture); +    tmp_topology = g_strdup_printf( +                    "[Topology]\n" +                    "ID=%d\n" +                    "Socket=%s\n" +                    "Core=%s\n", +                   processor->id, +                   processor->package_id, +                   processor->core_id); + +    if (processor->cpukhz_min || processor->cpukhz_max || processor->cpukhz_cur) { +        tmp_cpufreq = g_strdup_printf( +                    "[Frequency Scaling]\n" +                    "Minimum=%d kHz\n" +                    "Maximum=%d kHz\n" +                    "Current=%d kHz\n" +                    "Transition Latency=%d ns\n" +                    "Governor=%s\n" +                    "Driver=%s\n", +                   processor->cpukhz_min, +                   processor->cpukhz_max, +                   processor->cpukhz_cur, +                   processor->transition_latency, +                   processor->scaling_governor, +                   processor->scaling_driver); +    } else { +        tmp_cpufreq = g_strdup_printf( +                    "[Frequency Scaling]\n" +                    "Driver=%s\n", +                   processor->scaling_driver); +    } +      ret = g_strdup_printf("[Processor]\n"                             "Linux Name=%s\n"                             "Decoded Name=%s\n" @@ -271,17 +302,8 @@ processor_get_detailed_info(Processor *processor)                         "Big Endian"  #endif                         "\n" -                       "[Topology]\n" -                       "ID=%d\n" -                       "Socket=%s\n" -                       "Core=%s\n" -                       "[Frequency Scaling]\n" -                       "Minimum=%d kHz\n" -                       "Maximum=%d kHz\n" -                       "Current=%d kHz\n" -                       "Transition Latency=%d ns\n" -                       "Governor=%s\n" -                       "Driver=%s\n" +                       "%s" /* topology */ +                       "%s" /* frequency scaling */                         "[ARM]\n"                         "Implementer=[%s] %s\n"                         "Part=[%s] %s\n" @@ -295,15 +317,8 @@ processor_get_detailed_info(Processor *processor)                     processor->decoded_name,                     arm_mode_str[processor->mode],                     processor->bogomips, -                   processor->id, -                   processor->package_id, -                   processor->core_id, -                   processor->cpukhz_min, -                   processor->cpukhz_max, -                   processor->cpukhz_cur, -                   processor->transition_latency, -                   processor->scaling_governor, -                   processor->scaling_driver, +                   tmp_topology, +                   tmp_cpufreq,                     processor->cpu_implementer, (tmp_imp) ? tmp_imp : "",                     processor->cpu_part, (tmp_part) ? tmp_part : "",                     processor->cpu_architecture, (tmp_arch) ? tmp_arch : "", @@ -312,7 +327,8 @@ processor_get_detailed_info(Processor *processor)                     tmp_flags,                      "");      g_free(tmp_flags); - +    g_free(tmp_cpufreq); +    g_free(tmp_topology);      return ret;  } diff --git a/modules/devices/x86/processor.c b/modules/devices/x86/processor.c index 4e0363d4..559fe070 100644 --- a/modules/devices/x86/processor.c +++ b/modules/devices/x86/processor.c @@ -752,13 +752,44 @@ gchar *processor_get_capabilities_from_flags(gchar * strflags)  gchar *processor_get_detailed_info(Processor * processor)  { -    gchar *tmp_flags, *tmp_bugs, *tmp_pm, *ret, *cache_info; +    gchar *tmp_flags, *tmp_bugs, *tmp_pm, *tmp_cpufreq, *tmp_topology, *ret, *cache_info;      tmp_flags = processor_get_capabilities_from_flags(processor->flags);      tmp_bugs = processor_get_capabilities_from_flags(processor->bugs);      tmp_pm = processor_get_capabilities_from_flags(processor->pm);      cache_info = __cache_get_info_as_string(processor); +    tmp_topology = g_strdup_printf( +                    "[Topology]\n" +                    "ID=%d\n" +                    "Socket=%s\n" +                    "Core=%s\n", +                   processor->id, +                   processor->package_id, +                   processor->core_id); + +    if (processor->cpukhz_min || processor->cpukhz_max || processor->cpukhz_cur) { +        tmp_cpufreq = g_strdup_printf( +                    "[Frequency Scaling]\n" +                    "Minimum=%d kHz\n" +                    "Maximum=%d kHz\n" +                    "Current=%d kHz\n" +                    "Transition Latency=%d ns\n" +                    "Governor=%s\n" +                    "Driver=%s\n", +                   processor->cpukhz_min, +                   processor->cpukhz_max, +                   processor->cpukhz_cur, +                   processor->transition_latency, +                   processor->scaling_governor, +                   processor->scaling_driver); +    } else { +        tmp_cpufreq = g_strdup_printf( +                    "[Frequency Scaling]\n" +                    "Driver=%s\n", +                   processor->scaling_driver); +    } +      ret = g_strdup_printf(_("[Processor]\n"                         "Name=%s\n"                         "Family, model, stepping=%d, %d, %d (%s)\n" @@ -768,17 +799,8 @@ gchar *processor_get_detailed_info(Processor * processor)                         "Frequency=%.2fMHz\n"                         "BogoMIPS=%.2f\n"                         "Byte Order=%s\n" -                       "[Topology]\n" -                       "ID=%d\n" -                       "Socket=%s\n" -                       "Core=%s\n" -                       "[Frequency Scaling]\n" -                       "Minimum=%d kHz\n" -                       "Maximum=%d kHz\n" -                       "Current=%d kHz\n" -                       "Transition Latency=%d ns\n" -                       "Governor=%s\n" -                       "Driver=%s\n" +                       "%s" /* topology */ +                       "%s" /* frequency scaling */                         "[Features]\n"                         "Has FPU=%s\n"                         "[Cache]\n" @@ -802,15 +824,8 @@ gchar *processor_get_detailed_info(Processor * processor)  #else                         "Big Endian",  #endif -                   processor->id, -                   processor->package_id, -                   processor->core_id, -                   processor->cpukhz_min, -                   processor->cpukhz_max, -                   processor->cpukhz_cur, -                   processor->transition_latency, -                   processor->scaling_governor, -                   processor->scaling_driver, +                   tmp_topology, +                   tmp_cpufreq,                     processor->has_fpu  ? processor->has_fpu  : "no",                     cache_info,                     tmp_pm, tmp_bugs, tmp_flags); @@ -818,7 +833,8 @@ gchar *processor_get_detailed_info(Processor * processor)      g_free(tmp_bugs);      g_free(tmp_pm);      g_free(cache_info); - +    g_free(tmp_cpufreq); +    g_free(tmp_topology);      return ret;  } | 
