aboutsummaryrefslogtreecommitdiff
path: root/arch/linux/s390/processor.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/linux/s390/processor.h')
-rw-r--r--arch/linux/s390/processor.h32
1 files changed, 19 insertions, 13 deletions
diff --git a/arch/linux/s390/processor.h b/arch/linux/s390/processor.h
index 1648b917..ee72b029 100644
--- a/arch/linux/s390/processor.h
+++ b/arch/linux/s390/processor.h
@@ -16,8 +16,14 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-static Processor *
-computer_get_processor(void)
+struct _Processor {
+ gchar *vendor_id, *model_name;
+ gint cache_size;
+ gfloat bogomips;
+};
+
+static GSList *
+__scan_processors(void)
{
Processor *processor;
FILE *cpuinfo;
@@ -36,34 +42,34 @@ computer_get_processor(void)
tmp[1] = g_strstrip(tmp[1]);
get_str("vendor_id", processor->vendor_id);
- get_int("# processors", processor->model);
- get_float("bogomips per cpu", processor->bogomips);
+ get_float("# processors", processor->cache_size);
+ get_int("bogomips per cpu", processor->bogomips);
}
g_strfreev(tmp);
}
- gchar *tmp = g_strconcat("S390 ", processor->vendor_id, NULL);
- processor->model_name = tmp;
+ processor->model_name = g_strconcat("S390 ", processor->vendor_id, NULL);
+ g_free(processor->vendor_id);
fclose(cpuinfo);
- return processor;
+ return g_slist_append(NULL, processor);
}
static gchar *
-processor_get_info(Processor *processor)
+processor_get_info(GSList *processors)
{
+ Processor *processor = (Processor *)processors->data;
+
return g_strdup_printf("[Processor]\n"
- "Name=%s\n"
- "Vendor=%s\n"
+ "Model=%s\n"
+ "Processors=%d\n"
"BogoMips per CPU=%.2f"
- "Processors=%d\n"
"Byte Order=%s\n",
processor->model_name,
- processor->vendor_id,
+ processor->cache_size,
processor->bogomips,
- processor->model,
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
"Little Endian"
#else