diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2008-07-01 12:09:27 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2008-07-01 12:09:27 -0300 |
commit | e887bf2b48df5a523cf555b090d47e03c41ba225 (patch) | |
tree | 68ad60d10f8d2b5ffcedbe7286e6396367277187 /hardinfo2/arch/linux | |
parent | 7fa9a09482c21ca5947a8dfb8a2482628a8327a3 (diff) |
Fixes Resources display, cleanups.
Diffstat (limited to 'hardinfo2/arch/linux')
-rw-r--r-- | hardinfo2/arch/linux/common/resources.h | 68 |
1 files changed, 23 insertions, 45 deletions
diff --git a/hardinfo2/arch/linux/common/resources.h b/hardinfo2/arch/linux/common/resources.h index bd3fc221..b0c0934a 100644 --- a/hardinfo2/arch/linux/common/resources.h +++ b/hardinfo2/arch/linux/common/resources.h @@ -61,60 +61,38 @@ void scan_device_resources(gboolean reload) SCAN_START(); FILE *io; gchar buffer[256]; + gint i; + + struct { + gchar *file; + gchar *description; + } resources[] = { + { "/proc/ioports", "[I/O Ports]\n" }, + { "/proc/iomem", "[Memory]\n" }, + { "/proc/dma", "[DMA]\n" } + }; g_free(_resources); _resources = g_strdup(""); - if ((io = fopen("/proc/ioports", "r"))) { - _resources = h_strconcat(_resources, "[I/O Ports]\n", NULL); - - while (fgets(buffer, 256, io)) { - gchar **temp = g_strsplit(buffer, ":", 2); - gchar *name = _resource_obtain_name(temp[1]); - - _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], name); - - g_strfreev(temp); - g_free(name); - } + for (i = 0; i < G_N_ELEMENTS(resources); i++) { + if ((io = fopen(resources[i].file, "r"))) { + _resources = h_strconcat(_resources, resources[i].description, NULL); - fclose(io); - } - - if ((io = fopen("/proc/iomem", "r"))) { - _resources = h_strconcat(_resources, "[Memory]\n", NULL); + while (fgets(buffer, 256, io)) { + gchar **temp = g_strsplit(buffer, ":", 2); + gchar *name = _resource_obtain_name(temp[1]); - while (fgets(buffer, 256, io)) { - gchar **temp = g_strsplit(buffer, ":", 2); - gchar *name = _resource_obtain_name(temp[1]); - - _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], name); - - g_strfreev(temp); - g_free(name); - } + _resources = h_strdup_cprintf("<tt>%s</tt>=%s\n", _resources, + temp[0], name); - fclose(io); - } - - if ((io = fopen("/proc/dma", "r"))) { - _resources = h_strconcat(_resources, "[DMA]\n", NULL); + g_strfreev(temp); + g_free(name); + } - while (fgets(buffer, 256, io)) { - gchar **temp = g_strsplit(buffer, ":", 2); - gchar *name = _resource_obtain_name(temp[1]); - - _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], name); - - g_strfreev(temp); - g_free(name); + fclose(io); } - - fclose(io); - } + } SCAN_END(); } |