From cad6ecb973c8f1cb86cc050879ccd6d47695ecc0 Mon Sep 17 00:00:00 2001 From: nwhitehorn Date: Sat, 26 Feb 2011 15:44:03 +0000 Subject: Show disk model numbers in partition wizard screen. Also, since da(4) disks are probably more likely to be USB or Firewire these days than SCSI, just call them and anyone unknown "Disk" instead of SCSI disk. --- usr.sbin/bsdinstall/partedit/part_wizard.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'usr.sbin') diff --git a/usr.sbin/bsdinstall/partedit/part_wizard.c b/usr.sbin/bsdinstall/partedit/part_wizard.c index 248e77c..6e255a4 100644 --- a/usr.sbin/bsdinstall/partedit/part_wizard.c +++ b/usr.sbin/bsdinstall/partedit/part_wizard.c @@ -89,7 +89,7 @@ boot_disk(struct gmesh *mesh) struct ggeom *gp; struct gprovider *pp; DIALOG_LISTITEM *disks = NULL; - const char *type; + const char *type, *desc; char diskdesc[512]; char *chosen; int i, err, selected, n = 0; @@ -104,15 +104,20 @@ boot_disk(struct gmesh *mesh) continue; LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { - type = NULL; - LIST_FOREACH(gc, &pp->lg_config, lg_config) + desc = type = NULL; + LIST_FOREACH(gc, &pp->lg_config, lg_config) { if (strcmp(gc->lg_name, "type") == 0) type = gc->lg_val; + if (strcmp(gc->lg_name, "descr") == 0) + desc = gc->lg_val; + } - /* Skip swap-backed md devices */ + /* Skip swap-backed md and WORM devices */ if (strcmp(classp->lg_name, "MD") == 0 && type != NULL && strcmp(type, "swap") == 0) continue; + if (strncmp(pp->lg_name, "cd", 2) == 0) + continue; disks = realloc(disks, (++n)*sizeof(disks[0])); disks[n-1].name = pp->lg_name; @@ -120,15 +125,15 @@ boot_disk(struct gmesh *mesh) "B", HN_AUTOSCALE, HN_DECIMAL); if (strncmp(pp->lg_name, "ad", 2) == 0) strcat(diskdesc, " ATA Hard Disk"); - else if (strncmp(pp->lg_name, "da", 2) == 0) - strcat(diskdesc, " SCSI Hard Disk"); else if (strncmp(pp->lg_name, "md", 2) == 0) strcat(diskdesc, " Memory Disk"); - else if (strncmp(pp->lg_name, "cd", 2) == 0) { - n--; - continue; - } else - strcat(diskdesc, " Hard Disk"); + else + strcat(diskdesc, " Disk"); + + if (desc != NULL) + snprintf(diskdesc, sizeof(diskdesc), + "%s <%s>", diskdesc, desc); + disks[n-1].text = strdup(diskdesc); disks[n-1].help = NULL; disks[n-1].state = 0; -- cgit v1.1