aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2017-07-09 22:52:41 -0500
committerLeandro Pereira <leandro@hardinfo.org>2017-07-12 19:38:41 -0700
commit9cb099818be4edc0cb2d28ca1e93bb27e8b36c18 (patch)
tree8cd0c13533462f49f2c1dae9027b9f93d8a75b93
parent17651fbf35c8e6a6d16c5a31ddb7ab0ef03daeec (diff)
sh (superh): fixes, add tests
Signed-off-by: Burt P <pburt0@gmail.com>
-rw-r--r--includes/sh/processor-platform.h4
-rw-r--r--modules/devices/sh/processor.c28
-rw-r--r--test/data/sh_dreamcast_cpuinfo9
-rw-r--r--test/data/sh_sh3_cpuinfo4
-rw-r--r--test/data/sh_sh64_cpuinfo13
-rw-r--r--test/test.sh8
6 files changed, 55 insertions, 11 deletions
diff --git a/includes/sh/processor-platform.h b/includes/sh/processor-platform.h
index 9bdae18b..26b58ec5 100644
--- a/includes/sh/processor-platform.h
+++ b/includes/sh/processor-platform.h
@@ -23,6 +23,10 @@ struct _Processor {
gchar *model_name;
gchar *vendor_id;
gfloat bogomips, cpu_mhz;
+
+ gfloat bus_mhz, mod_mhz;
+
+ gchar *family;
};
#endif /* __PROCESSOR_PLATFORM_H__ */
diff --git a/modules/devices/sh/processor.c b/modules/devices/sh/processor.c
index a2018ff8..92b96f73 100644
--- a/modules/devices/sh/processor.c
+++ b/modules/devices/sh/processor.c
@@ -50,16 +50,24 @@ processor_scan(void)
tmp[0] = g_strstrip(tmp[0]);
tmp[1] = g_strstrip(tmp[1]);
- get_str("machine", processor->model_name);
- get_str("cpu type", processor->vendor_id);
+ get_str("machine", processor->vendor_id);
+ get_str("cpu type", processor->model_name);
+ get_str("cpu family", processor->family);
+ get_float("cpu clock", processor->cpu_mhz);
+ get_float("bus clock", processor->bus_mhz);
+ get_float("module clock", processor->mod_mhz);
get_float("bogomips", processor->bogomips);
- processor->cpu_mhz = processor->bogomips;
}
g_strfreev(tmp);
}
fclose(cpuinfo);
+ if (!processor->model_name)
+ processor->model_name = _("SuperH Processor");
+ if (!processor->vendor_id)
+ processor->vendor_id = _("(Unknown)");
+
return g_slist_append(NULL, processor);
}
@@ -69,15 +77,21 @@ processor_get_info(GSList *processors)
Processor *processor = (Processor *)processors->data;
return g_strdup_printf("[%s]\n"
- "%s=%s\n"
- "%s=%s\n"
+ "%s=%s\n" /* cpu type */
+ "%s=%s\n" /* machine */
+ "%s=%s\n" /* family */
"%s=%.2f %s\n" /* frequency */
+ "%s=%.2f %s\n" /* bus frequency */
+ "%s=%.2f %s\n" /* module frequency */
"%s=%.2f\n" /* bogomips */
"%s=%s\n", /* byte order */
_("Processor"),
- _("System Type"), processor->model_name,
- _("Model"), processor->vendor_id,
+ _("Name"), processor->model_name,
+ _("Machine"), processor->vendor_id,
+ _("Family"), processor->family,
_("Frequency"), processor->cpu_mhz, _("MHz"),
+ _("Bus Frequency"), processor->bus_mhz, _("MHz"),
+ _("Module Frequency"), processor->mod_mhz, _("MHz"),
_("BogoMips"), processor->bogomips,
_("Byte Order"), byte_order_str()
);
diff --git a/test/data/sh_dreamcast_cpuinfo b/test/data/sh_dreamcast_cpuinfo
new file mode 100644
index 00000000..84e9dd90
--- /dev/null
+++ b/test/data/sh_dreamcast_cpuinfo
@@ -0,0 +1,9 @@
+machine : Sega Dreamcast
+processor : 0
+cpu family : sh4
+cpu type : SH7750
+cache size : 8K-bytes/16K-bytes
+bogomips : 199.06
+cpu clock : 199.49MHz
+bus clock : 99.74MHz
+module clock : 49.87MHz
diff --git a/test/data/sh_sh3_cpuinfo b/test/data/sh_sh3_cpuinfo
new file mode 100644
index 00000000..a9389bec
--- /dev/null
+++ b/test/data/sh_sh3_cpuinfo
@@ -0,0 +1,4 @@
+cpu family : SH-3
+cache size : 8K-byte
+bogomips : 39.83
+
diff --git a/test/data/sh_sh64_cpuinfo b/test/data/sh_sh64_cpuinfo
new file mode 100644
index 00000000..ba869c45
--- /dev/null
+++ b/test/data/sh_sh64_cpuinfo
@@ -0,0 +1,13 @@
+machine : Hitachi Cayman
+processor : 0
+cpu family : SH-5
+cpu type : SH5-101
+icache size : 32K-bytes
+dcache size : 32K-bytes
+itlb entries : 64
+dtlb entries : 64
+cpu clock : 314.73MHz
+bus clock : 157.36MHz
+module clock : 26.22MHz
+bogomips : 313.75
+
diff --git a/test/test.sh b/test/test.sh
index 89254a34..9462ad63 100644
--- a/test/test.sh
+++ b/test/test.sh
@@ -19,7 +19,7 @@ do_test() {
#do_test alpha data/alpha_as_cpuinfo
#do_test parisc data/parisc_hppa_fortex4_cpuinfo
#do_test ia64 data/ia64_x2_cpuinfo
-do_test m68k data/m68k_sun3_cpuinfo
-
-
-
+#do_test m68k data/m68k_sun3_cpuinfo
+#do_test sh data/sh_dreamcast_cpuinfo
+#do_test sh data/sh_sh3_cpuinfo
+do_test sh data/sh_sh64_cpuinfo