diff options
Diffstat (limited to 'ide.c')
-rw-r--r-- | ide.c | 140 |
1 files changed, 0 insertions, 140 deletions
@@ -1,140 +0,0 @@ - -/* - * Hardware Information, version 0.3 - * Copyright (C) 2003 Leandro Pereira <leandro@linuxmag.com.br> - * - * May be modified and/or distributed under the terms of GNU GPL version 2. - * - */ - -#include "hardinfo.h" -#include "ide.h" - -#include <stdlib.h> - -IDEDevice *hi_scan_ide(void) -{ - FILE *proc_ide; - gchar *device, iface; - gint n = 0, i = 0; - struct stat st; - IDEDevice *ide_dev, *ide; - - ide = NULL; - - for (i=0; i<=16; i++) { - iface='a'+i; - device = g_strdup_printf("/proc/ide/hd%c/model", iface); - if (!stat(device, &st)) { - gchar buf[64]; - - ide_dev = g_new0(IDEDevice, 1); - ide_dev->next = ide; - ide = ide_dev; - - proc_ide = fopen(device, "r"); - fgets(buf, 64, proc_ide); - fclose(proc_ide); - - buf[strlen(buf)-1]=0; - - ide_dev->model = g_strdup(buf); - - g_free(device); - - device = g_strdup_printf("/proc/ide/hd%c/media", iface); - proc_ide = fopen(device, "r"); - fgets(buf, 64, proc_ide); - fclose(proc_ide); - buf[strlen(buf)-1]=0; - - ide_dev->media = g_strdup(buf); - - g_free(device); - - device = g_strdup_printf("/proc/ide/hd%c/cache", iface); - if (!stat(device, &st)) { - proc_ide = fopen(device, "r"); - fgets(buf, 64, proc_ide); - fclose(proc_ide); - - ide_dev->cache = atoi(buf); - } - g_free(device); - - device = g_strdup_printf("/proc/ide/hd%c/geometry", iface); - if (!stat(device, &st)) { - gchar *tmp; - - proc_ide = fopen(device, "r"); - - fgets(buf, 64, proc_ide); - for (tmp = buf; *tmp; tmp++) { - if (*tmp >= '0' && *tmp <= '9') break; - } - - ide_dev->phy_geometry = g_strdup(g_strstrip(tmp)); - - fgets(buf, 64, proc_ide); - for (tmp = buf; *tmp; tmp++) { - if (*tmp >= '0' && *tmp <= '9') break; - } - ide_dev->log_geometry = g_strdup(g_strstrip(tmp)); - - fclose(proc_ide); - } - g_free(device); - - n++; - } else - g_free(device); - } - - return ide; -} - -void hi_show_ide_info(MainWindow *mainwindow, IDEDevice *device) -{ - static struct { - char *type; - char *label; - char *icon; - } type2icon[] = { - {"cdrom", "CD-ROM", "cd.png"}, - {"disk", "Hard Disk", "hdd.png"} - }; - int i; - gchar *buf; - - if(!device) return; - - for (i = 0; type2icon[i].type != NULL; ++i) { - if (!strcmp(device->media, type2icon[i].type)) break; - } - - buf = g_strdup_printf("%s%s", IMG_PREFIX, type2icon[i].icon); - detail_window_set_icon(mainwindow->det_window, buf); - g_free(buf); - - buf = g_strdup_printf(_("ATA/IDE %s Device"), type2icon[i].label); - gtk_window_set_title(GTK_WINDOW(mainwindow->det_window->window), buf); - detail_window_set_dev_type(mainwindow->det_window, buf); - g_free(buf); - - detail_window_set_dev_name(mainwindow->det_window, device->model); - - if (device->cache) { - detail_window_append_info_int(mainwindow->det_window, _("Cache (kb)"), - device->cache, FALSE); - } - - if (device->phy_geometry) { - detail_window_append_info(mainwindow->det_window, _("Physical geometry"), - device->phy_geometry); - } - if (device->log_geometry) { - detail_window_append_info(mainwindow->det_window, _("Logical geometry"), - device->log_geometry); - } - -} |