]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: add fdisk_scround()
authorKarel Zak <kzak@redhat.com>
Thu, 2 May 2013 12:54:55 +0000 (14:54 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 16 Sep 2013 14:46:54 +0000 (16:46 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
fdisks/fdisksunlabel.c
libfdisk/src/alignment.c
libfdisk/src/fdiskP.h
libfdisk/src/utils.c

index 9fc06a941ffa5d6debc2d3a73531312bdee7a50b..864a8b5a6593735e3e304079e4e749e34eef633f 100644 (file)
@@ -513,9 +513,9 @@ static int sun_add_partition(
                        fdisk_ask_number_set_default(ask, 0);   /* default */
                        fdisk_ask_number_set_high(ask,    0);   /* maximal */
                } else {
-                       fdisk_ask_number_set_low(ask,     scround(cxt, start)); /* minimal */
-                       fdisk_ask_number_set_default(ask, scround(cxt, start)); /* default */
-                       fdisk_ask_number_set_high(ask,    scround(cxt, stop));  /* maximal */
+                       fdisk_ask_number_set_low(ask,     fdisk_scround(cxt, start));   /* minimal */
+                       fdisk_ask_number_set_default(ask, fdisk_scround(cxt, start));   /* default */
+                       fdisk_ask_number_set_high(ask,    fdisk_scround(cxt, stop));    /* maximal */
                }
                rc = fdisk_do_ask(cxt, ask);
                first = fdisk_ask_number_get_result(ask);
@@ -586,20 +586,20 @@ and is of type `Whole disk'"));
        fdisk_ask_set_type(ask, FDISK_ASKTYPE_OFFSET);
 
        if (whole_disk) {
-               fdisk_ask_number_set_low(ask,     scround(cxt, stop2)); /* minimal */
-               fdisk_ask_number_set_default(ask, scround(cxt, stop2)); /* default */
-               fdisk_ask_number_set_high(ask,    scround(cxt, stop2)); /* maximal */
+               fdisk_ask_number_set_low(ask,     fdisk_scround(cxt, stop2));   /* minimal */
+               fdisk_ask_number_set_default(ask, fdisk_scround(cxt, stop2));   /* default */
+               fdisk_ask_number_set_high(ask,    fdisk_scround(cxt, stop2));   /* maximal */
                fdisk_ask_number_set_base(ask,    0);
        } else if (n == 2 && !first) {
-               fdisk_ask_number_set_low(ask,     scround(cxt, first)); /* minimal */
-               fdisk_ask_number_set_default(ask, scround(cxt, stop2)); /* default */
-               fdisk_ask_number_set_high(ask,    scround(cxt, stop2)); /* maximal */
-               fdisk_ask_number_set_base(ask,    scround(cxt, first));
+               fdisk_ask_number_set_low(ask,     fdisk_scround(cxt, first));   /* minimal */
+               fdisk_ask_number_set_default(ask, fdisk_scround(cxt, stop2));   /* default */
+               fdisk_ask_number_set_high(ask,    fdisk_scround(cxt, stop2));   /* maximal */
+               fdisk_ask_number_set_base(ask,    fdisk_scround(cxt, first));
        } else {
-               fdisk_ask_number_set_low(ask,     scround(cxt, first)); /* minimal */
-               fdisk_ask_number_set_default(ask, scround(cxt, stop));  /* default */
-               fdisk_ask_number_set_high(ask,    scround(cxt, stop));  /* maximal */
-               fdisk_ask_number_set_base(ask,    scround(cxt, first));
+               fdisk_ask_number_set_low(ask,     fdisk_scround(cxt, first));   /* minimal */
+               fdisk_ask_number_set_default(ask, fdisk_scround(cxt, stop));    /* default */
+               fdisk_ask_number_set_high(ask,    fdisk_scround(cxt, stop));    /* maximal */
+               fdisk_ask_number_set_base(ask,    fdisk_scround(cxt, first));
        }
 
        if (fdisk_context_use_cylinders(cxt))
@@ -625,8 +625,8 @@ and is of type `Whole disk'"));
    _("You haven't covered the whole disk with the 3rd partition, but your value\n"
      "%d %s covers some other partition. Your entry has been changed\n"
      "to %d %s"),
-                       scround(cxt, last), fdisk_context_get_unit(cxt, SINGULAR),
-                       scround(cxt, stop), fdisk_context_get_unit(cxt, SINGULAR));
+                       fdisk_scround(cxt, last), fdisk_context_get_unit(cxt, SINGULAR),
+                       fdisk_scround(cxt, stop), fdisk_context_get_unit(cxt, SINGULAR));
                    last = stop;
                }
        } else if (!whole_disk && last > stop)
@@ -742,9 +742,9 @@ static int sun_list_disklabel(struct fdisk_context *cxt)
                                flags & SUN_FLAG_UNMNT ? 'u' : ' ',
                                flags & SUN_FLAG_RONLY ? 'r' : ' ') > 0)
                        tt_line_set_data(ln, 1, p);     /* flags */
-               if (asprintf(&p, "%lu", scround(cxt, start)) > 0)
+               if (asprintf(&p, "%ju", (uintmax_t) fdisk_scround(cxt, start)) > 0)
                        tt_line_set_data(ln, 2, p);     /* start */
-               if (asprintf(&p, "%lu", scround(cxt, start + len)) > 0)
+               if (asprintf(&p, "%ju", (uintmax_t) fdisk_scround(cxt, start + len)) > 0)
                        tt_line_set_data(ln, 3, p);     /* end */
                if (asprintf(&p, "%lu%c",
                                (unsigned long) len / 2,
index ac44e73c11ddcaec399ff8e3fd31b3be26c89363..b4d3ee01d955cebb5033075d98408225e41ebb62 100644 (file)
@@ -379,3 +379,10 @@ int fdisk_reset_alignment(struct fdisk_context *cxt)
                            cxt->grain, rc));
        return rc;
 }
+
+
+sector_t fdisk_scround(struct fdisk_context *cxt, sector_t num)
+{
+       sector_t un = fdisk_context_get_units_per_sector(cxt);
+       return (num + un - 1) / un;
+}
index ac490be0f15de2717ac2ad7317b6d5cf8cd786e3..4dd4db6c9932e352eb70594f5098842c7667ca63 100644 (file)
@@ -291,6 +291,8 @@ extern int fdisk_context_display_details(struct fdisk_context *cxt);
 
 
 /* alignment.c */
+extern sector_t fdisk_scround(struct fdisk_context *cxt, sector_t num);
+
 extern sector_t fdisk_topology_get_first_lba(struct fdisk_context *cxt);
 extern unsigned long fdisk_topology_get_grain(struct fdisk_context *cxt);
 
index 9195b2b194b9cb75dd868229ab6dee73ee1efe69..9a95ba24c94050690f6cfba33032f150592dc222 100644 (file)
@@ -46,7 +46,6 @@ int fdisk_read_firstsector(struct fdisk_context *cxt)
        return 0;
 }
 
-
 /*
  * Return allocated buffer with partition name
  */