diff options
Diffstat (limited to 'arch/linux/s390/processor.h')
-rw-r--r-- | arch/linux/s390/processor.h | 32 |
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 |