aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardinfo2/arch/linux/alpha/processor.h3
-rw-r--r--hardinfo2/arch/linux/armv4l/processor.h4
-rw-r--r--hardinfo2/arch/linux/ia64/processor.h4
-rw-r--r--hardinfo2/arch/linux/s390/processor.h4
-rw-r--r--hardinfo2/arch/linux/sparc/processor.h3
-rw-r--r--hardinfo2/devices.c16
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},