diff options
Diffstat (limited to 'scsi.c')
-rw-r--r-- | scsi.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/scsi.c b/scsi.c deleted file mode 100644 index fc1dd40d..00000000 --- a/scsi.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Hardware Information, version 0.3 - * Copyright (C) 2003 Leandro Pereira <leandro@linuxmag.com.br> - * SCSI support by Pascal F.Martin <pascalmartin@earthlink.net> - * - * May be modified and/or distributed under the terms of GNU GPL version 2. - */ - -#include "hardinfo.h" -#include "scsi.h" - -SCSIDevice *hi_scan_scsi(void) -{ - FILE *proc_scsi; - gchar buffer[256], *buf; - gint n=0; - SCSIDevice *scsi_dev = NULL, *scsi; - struct stat st; - - scsi = NULL; - - if(stat("/proc/scsi/scsi", &st)) return NULL; - - proc_scsi = fopen("/proc/scsi/scsi", "r"); - while(fgets(buffer, 256, proc_scsi)) { - buf = g_strstrip(buffer); - if(!strncmp(buf, "Host: scsi", 10)) { - gint scsi_controller; - gint scsi_channel; - gint scsi_id; - gint scsi_lun; - - sscanf(buf, - "Host: scsi%d Channel: %d Id: %d Lun: %d", - &scsi_controller, - &scsi_channel, - &scsi_id, - &scsi_lun); - - buf = strstr (buffer, "Rev: "); - if (buf == NULL) { - buf = "(unknown)"; - } else { - buf += 5; - } - scsi_dev = g_new0(SCSIDevice, 1); - - scsi_dev->next = scsi; - scsi = scsi_dev; - - scsi_dev->controller = scsi_controller; - scsi_dev->channel = scsi_channel; - scsi_dev->id = scsi_id; - scsi_dev->lun = scsi_lun; - - n++; - - } else if (!strncmp(buf, "Vendor: ", 8)) { - - char *p; - char *model = strstr (buf, "Model: "); - char *rev = strstr (buf, "Rev: "); - - if (model == NULL) { - model = buf + strlen(buf); - } - p = model; - while (*(--p) == ' ') ; - *(++p) = 0; - scsi_dev->vendor = g_strdup(buf+8); - - if (rev != NULL) { - scsi_dev->revision = g_strdup(rev+5); - } else { - rev = model + strlen(model); - } - p = rev; - while (*(--p) == ' ') ; - *(++p) = 0; - scsi_dev->model = - g_strdup_printf - ("%s %s", scsi_dev->vendor, model+7); - - } else if (!strncmp(buf, "Type: ", 8)) { - char *p = strstr (buf, "ANSI SCSI revi"); - - if (p != NULL) { - while (*(--p) == ' ') ; - *(++p) = 0; - scsi_dev->type = g_strdup(buf+8); - } - } - } - fclose(proc_scsi); - - return scsi; -} - -void hi_show_scsi_info(MainWindow *mainwindow, SCSIDevice *device) -{ - static struct { - char *type; - char *label; - char *icon; - } type2icon[] = { - {"Direct-Access", "Disk", "hdd.png"}, - {"Sequential-Access", "Tape", "tape.png"}, - {"Printer", "Printer", "lpr.png"}, - {"WORM", "CD-ROM", "cd.png"}, - {"CD-ROM", "CD-ROM", "cd.png"}, - {"Scanner", "Scanner", "scan.png"}, - {NULL, "Generic", "scsi.png"} - }; - - int i; - gchar *buf; - - if(!device) return; - - for (i = 0; type2icon[i].type != NULL; ++i) { - if (!strcmp(device->type, 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(_("SCSI %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); - - - detail_window_append_info(mainwindow->det_window, _("Revision"), device->revision); - detail_window_append_info(mainwindow->det_window, _("Type"), device->type); - - detail_window_append_separator(mainwindow->det_window); - - detail_window_append_info_int(mainwindow->det_window, _("Controller"), device->controller, FALSE); - detail_window_append_info_int(mainwindow->det_window, _("Channel"), device->channel, FALSE); - detail_window_append_info_int(mainwindow->det_window, _("ID"), device->id, FALSE); - detail_window_append_info_int(mainwindow->det_window, _("LUN"), device->lun, FALSE); -} |