From 1a3c909a5fdd5eaa13ccf60086f3373d04e30a33 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 16 Feb 2014 01:58:08 +0400 Subject: cfdisk: support for illumos disks (/dev/rdsk/c0t0d0p0) --- fdisks/cfdisk.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fdisks/cfdisk.c b/fdisks/cfdisk.c index 1a95c1e0..cdd56f06 100644 --- a/fdisks/cfdisk.c +++ b/fdisks/cfdisk.c @@ -120,6 +120,9 @@ static struct systypes i386_sys_types[] = { #elif defined(__FreeBSD__) #define DEFAULT_DEVICE "/dev/ad0" #define ALTERNATE_DEVICE "/dev/da0" +#elif defined(__sun__) +#define DEFAULT_DEVICE "/dev/rdsk/c0d0p0" +#define ALTERNATE_DEVICE "/dev/rdsk/c0t0d0p0" #else #define DEFAULT_DEVICE "/dev/hda" #define ALTERNATE_DEVICE "/dev/sda" @@ -2391,11 +2394,21 @@ draw_partition(int i) { if (p_info[i].id > 0) { char *dbn = my_basename(disk_device); int l = strlen(dbn); +#ifdef __sun__ + /* + * XXX: Whole disk is c0t0d0p0, but patitions are c0t0d0p1, c0t0d0p2, etc. + * disk_device (and dbn) could be read-only, so we just overwrite the last 0 + * on the screen + */ + mvprintw(y, NAME_START, "%s", dbn); + mvprintw(y, NAME_START+l-1, "%d", p_info[i].num+1); +#else int digit_last = isdigit(dbn[l-1]); mvprintw(y, NAME_START, "%s%s%d", dbn, (digit_last ? "p" : ""), p_info[i].num+1); +#endif if (p_info[i].flags) { if (p_info[i].flags == ACTIVE_FLAG) mvaddstr(y, FLAGS_START, _("Boot")); -- cgit v1.2.3