disklabel32/64: Add support for 'T' size specifier.
authorSascha Wildner <saw@online.de>
Fri, 3 Aug 2012 19:45:49 +0000 (21:45 +0200)
committerSascha Wildner <saw@online.de>
Fri, 3 Aug 2012 19:45:49 +0000 (21:45 +0200)
sbin/disklabel32/disklabel.c
sbin/disklabel32/disklabel32.8
sbin/disklabel64/disklabel64.8
sbin/disklabel64/disklabel64.c

index e5158fb..48b3eea 100644 (file)
@@ -1270,22 +1270,26 @@ checklabel(struct disklabel32 *lp)
                                case '%':
                                        total_percent += size;
                                        break;
                                case '%':
                                        total_percent += size;
                                        break;
-                               case 'k':
-                               case 'K':
+                               case 't':
+                               case 'T':
                                        size *= 1024ULL;
                                        size *= 1024ULL;
-                                       break;
-                               case 'm':
-                               case 'M':
-                                       size *= 1024ULL * 1024ULL;
-                                       break;
+                                       /* FALLTHROUGH */
                                case 'g':
                                case 'G':
                                case 'g':
                                case 'G':
-                                       size *= 1024ULL * 1024ULL * 1024ULL;
+                                       size *= 1024ULL;
+                                       /* FALLTHROUGH */
+                               case 'm':
+                               case 'M':
+                                       size *= 1024ULL;
+                                       /* FALLTHROUGH */
+                               case 'k':
+                               case 'K':
+                                       size *= 1024ULL;
                                        break;
                                case '\0':
                                        break;
                                default:
                                        break;
                                case '\0':
                                        break;
                                default:
-                                       Warning("unknown size specifier '%c' (K/M/G are valid)",part_size_type[i]);
+                                       Warning("unknown size specifier '%c' (K/M/G/T are valid)",part_size_type[i]);
                                        break;
                                }
                                /* don't count %'s yet */
                                        break;
                                }
                                /* don't count %'s yet */
index f4ba733..085bbe4 100644 (file)
@@ -34,9 +34,8 @@
 .\"
 .\"    @(#)disklabel.8 8.2 (Berkeley) 4/19/94
 .\" $FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.22 2003/04/17 17:56:34 trhodes Exp $
 .\"
 .\"    @(#)disklabel.8 8.2 (Berkeley) 4/19/94
 .\" $FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.22 2003/04/17 17:56:34 trhodes Exp $
-.\" $DragonFly: src/sbin/disklabel/disklabel.8,v 1.30 2008/09/16 20:45:36 thomas Exp $
 .\"
 .\"
-.Dd September 28, 2009
+.Dd August 3, 2012
 .Dt DISKLABEL32 8
 .Os
 .Sh NAME
 .Dt DISKLABEL32 8
 .Os
 .Sh NAME
@@ -684,6 +683,8 @@ The size of the partition in sectors,
 (megabytes - 1024*1024),
 .Cm G
 (gigabytes - 1024*1024*1024),
 (megabytes - 1024*1024),
 .Cm G
 (gigabytes - 1024*1024*1024),
+.Cm T
+(gigabytes - 1024*1024*1024*1024),
 .Cm %
 (percentage of free space
 .Em after
 .Cm %
 (percentage of free space
 .Em after
@@ -700,9 +701,9 @@ a size of
 .Cm *
 indicates the entire disk.
 Lowercase versions of
 .Cm *
 indicates the entire disk.
 Lowercase versions of
-.Cm K , M ,
+.Cm K , M , G ,
 and
 and
-.Cm G
+.Cm T
 are allowed.
 Size and type should be specified without any spaces between them.
 .Pp
 are allowed.
 Size and type should be specified without any spaces between them.
 .Pp
index d70be30..e5526ac 100644 (file)
@@ -34,9 +34,8 @@
 .\"
 .\"    @(#)disklabel.8 8.2 (Berkeley) 4/19/94
 .\" $FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.22 2003/04/17 17:56:34 trhodes Exp $
 .\"
 .\"    @(#)disklabel.8 8.2 (Berkeley) 4/19/94
 .\" $FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.22 2003/04/17 17:56:34 trhodes Exp $
-.\" $DragonFly: src/sbin/disklabel64/disklabel64.8,v 1.13 2008/09/16 20:45:36 thomas Exp $
 .\"
 .\"
-.Dd September 28, 2009
+.Dd August 3, 2012
 .Dt DISKLABEL64 8
 .Os
 .Sh NAME
 .Dt DISKLABEL64 8
 .Os
 .Sh NAME
@@ -676,6 +675,8 @@ The size of the partition in sectors,
 (megabytes - 1024*1024),
 .Cm G
 (gigabytes - 1024*1024*1024),
 (megabytes - 1024*1024),
 .Cm G
 (gigabytes - 1024*1024*1024),
+.Cm T
+(terabytes - 1024*1024*1024*1024),
 .Cm %
 (percentage of free space
 .Em after
 .Cm %
 (percentage of free space
 .Em after
@@ -685,9 +686,9 @@ removing any fixed-size partitions),
 .Em after
 fixed-size and percentage partitions).
 Lowercase versions of
 .Em after
 fixed-size and percentage partitions).
 Lowercase versions of
-.Cm K , M ,
+.Cm K , M , G ,
 and
 and
-.Cm G
+.Cm T
 are allowed.
 Size and type should be specified without any spaces between them.
 .Pp
 are allowed.
 Size and type should be specified without any spaces between them.
 .Pp
index 2023594..c00ad44 100644 (file)
@@ -1112,6 +1112,10 @@ getasciipartspec(char *tp, struct disklabel64 *lp, int part,
        case '*':
                mpx = 0;
                break;
        case '*':
                mpx = 0;
                break;
+       case 't':
+       case 'T':
+               mpx *= 1024ULL;
+               /* fall through */
        case 'g':
        case 'G':
                mpx *= 1024ULL;
        case 'g':
        case 'G':
                mpx *= 1024ULL;
@@ -1126,7 +1130,7 @@ getasciipartspec(char *tp, struct disklabel64 *lp, int part,
                r = 0;                  /* eat the suffix */
                break;
        default:
                r = 0;                  /* eat the suffix */
                break;
        default:
-               Warning("unknown size specifier '%c' (*/%%/K/M/G are valid)",
+               Warning("unknown size specifier '%c' (*/%%/K/M/G/T are valid)",
                        r);
                return(1);
        }
                        r);
                return(1);
        }