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