diff options
-rw-r--r-- | hardinfo2/arch/linux/alpha/processor.h | 3 | ||||
-rw-r--r-- | hardinfo2/arch/linux/armv4l/processor.h | 4 | ||||
-rw-r--r-- | hardinfo2/arch/linux/ia64/processor.h | 4 | ||||
-rw-r--r-- | hardinfo2/arch/linux/s390/processor.h | 4 | ||||
-rw-r--r-- | hardinfo2/arch/linux/sparc/processor.h | 3 | ||||
-rw-r--r-- | hardinfo2/devices.c | 16 |
6 files changed, 30 insertions, 4 deletions
diff --git a/hardinfo2/arch/linux/alpha/processor.h b/hardinfo2/arch/linux/alpha/processor.h index e6013103..1e5b014c 100644 --- a/hardinfo2/arch/linux/alpha/processor.h +++ b/hardinfo2/arch/linux/alpha/processor.h @@ -18,7 +18,7 @@ struct _Processor { gchar *model_name; - gfloat bogomips; + gfloat bogomips, cpu_mhz; gchar *strmodel; }; @@ -52,6 +52,7 @@ __scan_processors(void) gchar *tmp = g_strconcat("Alpha ", processor->model_name, NULL); g_free(processor->model_name); processor->model_name = tmp; + processor->cpu_mhz = 0.0f; fclose(cpuinfo); diff --git a/hardinfo2/arch/linux/armv4l/processor.h b/hardinfo2/arch/linux/armv4l/processor.h index b64fd5eb..82b6be04 100644 --- a/hardinfo2/arch/linux/armv4l/processor.h +++ b/hardinfo2/arch/linux/armv4l/processor.h @@ -19,7 +19,7 @@ struct _Processor { gchar *model_name; gchar *flags; - gfloat bogomips; + gfloat bogomips, cpu_mhz; gchar *has_fpu; }; @@ -53,6 +53,8 @@ __scan_processors(void) g_strfreev(tmp); } + processor->cpu_mhz = 0.0f; + fclose(cpuinfo); return g_slist_append(NULL, processor); diff --git a/hardinfo2/arch/linux/ia64/processor.h b/hardinfo2/arch/linux/ia64/processor.h index d5e01776..d3d41519 100644 --- a/hardinfo2/arch/linux/ia64/processor.h +++ b/hardinfo2/arch/linux/ia64/processor.h @@ -19,7 +19,7 @@ struct _Processor { gchar *model_name; gchar *vendor_id; - gfloat bogomips; + gfloat bogomips, cpu_mhz; gchar *strmodel; }; @@ -50,6 +50,8 @@ __scan_processors(void) } g_strfreev(tmp); } + + processor->cpu_mhz = 0.0f; fclose(cpuinfo); diff --git a/hardinfo2/arch/linux/s390/processor.h b/hardinfo2/arch/linux/s390/processor.h index 1550d239..25dab8ca 100644 --- a/hardinfo2/arch/linux/s390/processor.h +++ b/hardinfo2/arch/linux/s390/processor.h @@ -19,7 +19,7 @@ struct _Processor { gchar *vendor_id, *model_name; gint cache_size; - gfloat bogomips; + gfloat bogomips, cpu_mhz; }; static GSList * @@ -48,6 +48,8 @@ __scan_processors(void) } g_strfreev(tmp); } + + processor->cpu_mhz = 0.0f; processor->model_name = g_strconcat("S390 ", processor->vendor_id, NULL); g_free(processor->vendor_id); diff --git a/hardinfo2/arch/linux/sparc/processor.h b/hardinfo2/arch/linux/sparc/processor.h index 3bbea922..0272c963 100644 --- a/hardinfo2/arch/linux/sparc/processor.h +++ b/hardinfo2/arch/linux/sparc/processor.h @@ -19,6 +19,7 @@ struct _Processor { gchar *model_name; gchar *has_fpu; + gfloat cpu_mhz; }; static GSList * @@ -48,6 +49,8 @@ __scan_processors(void) fclose(cpuinfo); + processor->cpu_mhz = 0.0f; + return g_slist_append(NULL, processor); } diff --git a/hardinfo2/devices.c b/hardinfo2/devices.c index e4a2fa7b..4150d6fb 100644 --- a/hardinfo2/devices.c +++ b/hardinfo2/devices.c @@ -168,9 +168,24 @@ gchar *get_input_devices(void) gchar *get_processor_count(void) { scan_processors(FALSE); + return g_strdup_printf("%d", g_slist_length(processors)); } +gchar *get_processor_frequency(void) +{ + Processor *p; + + scan_processors(FALSE); + + p = (Processor *)processors->data; + if (p->cpu_mhz == 0.0f) { + return g_strdup("Unknown"); + } else { + return g_strdup_printf("%d", p->cpu_mhz); + } +} + gchar *get_pci_device_description(gchar *pci_id) { gchar *description; @@ -191,6 +206,7 @@ ShellModuleMethod *hi_exported_methods(void) static ShellModuleMethod m[] = { {"getProcessorCount", get_processor_count}, {"getProcessorName", get_processor_name}, + {"getProcessorFrequency", get_processor_frequency}, {"getStorageDevices", get_storage_devices}, {"getPrinters", get_printers}, {"getInputDevices", get_input_devices}, |