From e887bf2b48df5a523cf555b090d47e03c41ba225 Mon Sep 17 00:00:00 2001 From: "Leandro A. F. Pereira" Date: Tue, 1 Jul 2008 12:09:27 -0300 Subject: Fixes Resources display, cleanups. --- hardinfo2/arch/linux/common/resources.h | 68 +++++++++++---------------------- 1 file changed, 23 insertions(+), 45 deletions(-) (limited to 'hardinfo2/arch') 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("%s=%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(); } -- cgit v1.2.3