summaryrefslogtreecommitdiffstats
path: root/fdisks
diff options
context:
space:
mode:
authorKarel Zak2013-02-08 10:48:15 +0100
committerKarel Zak2013-03-11 13:00:56 +0100
commit9eac213c5b14f8e1c1b18f35bfe04bc81702dc33 (patch)
tree7f861d57b779050684ac93980ca3add911057aff /fdisks
parentfdisk: add 'G' to create SGI label to the main menu (diff)
downloadkernel-qcow2-util-linux-9eac213c5b14f8e1c1b18f35bfe04bc81702dc33.tar.gz
kernel-qcow2-util-linux-9eac213c5b14f8e1c1b18f35bfe04bc81702dc33.tar.xz
kernel-qcow2-util-linux-9eac213c5b14f8e1c1b18f35bfe04bc81702dc33.zip
fdisk: (sun) use fdisk_{info,warnx}
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisks')
-rw-r--r--fdisks/fdisksunlabel.c88
1 files changed, 49 insertions, 39 deletions
diff --git a/fdisks/fdisksunlabel.c b/fdisks/fdisksunlabel.c
index 29864151b..3f949ea06 100644
--- a/fdisks/fdisksunlabel.c
+++ b/fdisks/fdisksunlabel.c
@@ -136,10 +136,10 @@ static int sun_probe_label(struct fdisk_context *cxt)
csum ^= *ush--;
if (csum) {
- fprintf(stderr,_("Detected sun disklabel with wrong checsum.\n"
- "Probably you'll have to set all the values,\n"
- "e.g. heads, sectors, cylinders and partitions\n"
- "or force a fresh label (s command in main menu)\n"));
+ fdisk_warnx(cxt, _("Detected sun disklabel with wrong checsum.\n"
+ "Probably you'll have to set all the values,\n"
+ "e.g. heads, sectors, cylinders and partitions\n"
+ "or force a fresh label (s command in main menu)"));
return 1;
}
@@ -153,24 +153,23 @@ static int sun_probe_label(struct fdisk_context *cxt)
cxt->geom.sectors = be16_to_cpu(sunlabel->nsect);
if (be32_to_cpu(sunlabel->vtoc.version) != SUN_VTOC_VERSION) {
- fprintf(stderr,_("Detected sun disklabel with wrong version [%d].\n"),
+ fdisk_warnx(cxt, _("Detected sun disklabel with wrong version [%d]."),
be32_to_cpu(sunlabel->vtoc.version));
need_fixing = 1;
}
if (be32_to_cpu(sunlabel->vtoc.sanity) != SUN_VTOC_SANITY) {
- fprintf(stderr,_("Detected sun disklabel with wrong vtoc.sanity [0x%08x].\n"),
+ fdisk_warnx(cxt, _("Detected sun disklabel with wrong vtoc.sanity [0x%08x]."),
be32_to_cpu(sunlabel->vtoc.sanity));
need_fixing = 1;
}
if (be16_to_cpu(sunlabel->vtoc.nparts) != SUN_MAXPARTITIONS) {
- fprintf(stderr,_("Detected sun disklabel with wrong vtoc.nparts [%u].\n"),
+ fdisk_warnx(cxt, _("Detected sun disklabel with wrong vtoc.nparts [%u]."),
be16_to_cpu(sunlabel->vtoc.nparts));
need_fixing = 1;
}
if (need_fixing) {
- fprintf(stderr, _("Warning: Wrong values need to be "
- "fixed up and will be corrected "
- "by w(rite)\n"));
+ fdisk_warnx(cxt, _("Warning: Wrong values need to be fixed up and "
+ "will be corrected by w(rite)"));
sunlabel->vtoc.version = cpu_to_be32(SUN_VTOC_VERSION);
sunlabel->vtoc.sanity = cpu_to_be32(SUN_VTOC_SANITY);
@@ -190,6 +189,20 @@ static int sun_probe_label(struct fdisk_context *cxt)
return 1;
}
+static void ask_geom(struct fdisk_context *cxt)
+{
+ uintmax_t res;
+
+ assert(cxt);
+
+ if (fdisk_ask_number(cxt, 1, 1, 1024, _("Heads"), &res) == 0)
+ cxt->geom.heads = res;
+ if (fdisk_ask_number(cxt, 1, 1, 1024, _("Sectors/track"), &res) == 0)
+ cxt->geom.sectors = res;
+ if (fdisk_ask_number(cxt, 1, 1, USHRT_MAX, _("Cylinders"), &res) == 0)
+ cxt->geom.cylinders = res;
+}
+
static int sun_create_disklabel(struct fdisk_context *cxt)
{
struct hd_geometry geometry;
@@ -204,7 +217,7 @@ static int sun_create_disklabel(struct fdisk_context *cxt)
assert(cxt->label);
assert(fdisk_is_disklabel(cxt, SUN));
- fprintf(stderr, _("Building a new Sun disklabel.\n"));
+ fdisk_info(cxt, _("Building a new Sun disklabel."));
/* map first sector to header */
fdisk_zeroize_firstsector(cxt);
@@ -235,19 +248,16 @@ static int sun_create_disklabel(struct fdisk_context *cxt)
cxt->geom.cylinders = ~0;
} else {
cxt->geom.cylinders = geometry.cylinders;
- fprintf(stderr,
+ fdisk_warnx(cxt,
_("Warning: BLKGETSIZE ioctl failed on %s. "
"Using geometry cylinder value of %llu.\n"
"This value may be truncated for devices"
- " > 33.8 GB.\n"), cxt->dev_path, cxt->geom.cylinders);
+ " > 33.8 GB."),
+ cxt->dev_path, cxt->geom.cylinders);
}
} else
#endif
- {
- cxt->geom.heads = read_int(cxt, 1,1,1024,0,_("Heads"));
- cxt->geom.sectors = read_int(cxt, 1,1,1024,0,_("Sectors/track"));
- cxt->geom.cylinders = read_int(cxt, 1,1,65535,0,_("Cylinders"));
- }
+ ask_geom(cxt);
sunlabel->acyl = cpu_to_be16(2);
sunlabel->pcyl = cpu_to_be16(cxt->geom.cylinders);
@@ -383,7 +393,7 @@ static int sun_verify_disklabel(struct fdisk_context *cxt)
for (k = 0; k < 7; k++) {
for (i = 0; i < SUN_MAXPARTITIONS; i++) {
if (k && (lens[i] % (cxt->geom.heads * cxt->geom.sectors))) {
- printf(_("Partition %d doesn't end on cylinder boundary\n"), i+1);
+ fdisk_warnx(cxt, _("Partition %d doesn't end on cylinder boundary"), i+1);
}
if (lens[i]) {
for (j = 0; j < i; j++)
@@ -403,8 +413,8 @@ static int sun_verify_disklabel(struct fdisk_context *cxt)
endo = starts[i]+lens[i];
if (starts[j]+lens[j] < endo)
endo = starts[j]+lens[j];
- printf(_("Partition %d overlaps with others in "
- "sectors %d-%d\n"), i+1, starto, endo);
+ fdisk_warnx(cxt, _("Partition %d overlaps with others in "
+ "sectors %d-%d"), i+1, starto, endo);
}
}
}
@@ -423,20 +433,20 @@ static int sun_verify_disklabel(struct fdisk_context *cxt)
verify_sun_starts);
if (array[0] == -1) {
- printf(_("No partitions defined\n"));
+ fdisk_info(cxt, _("No partitions defined"));
return 0;
}
stop = cxt->geom.cylinders * cxt->geom.heads * cxt->geom.sectors;
if (starts[array[0]])
- printf(_("Unused gap - sectors 0-%d\n"), starts[array[0]]);
+ fdisk_warnx(cxt, _("Unused gap - sectors 0-%d"), starts[array[0]]);
for (i = 0; i < 7 && array[i+1] != -1; i++) {
- printf(_("Unused gap - sectors %d-%d\n"),
+ fdisk_warnx(cxt, _("Unused gap - sectors %d-%d"),
(starts[array[i]] + lens[array[i]]),
starts[array[i+1]]);
}
start = (starts[array[i]] + lens[array[i]]);
if (start < stop)
- printf(_("Unused gap - sectors %d-%d\n"), start, stop);
+ fdisk_warnx(cxt, _("Unused gap - sectors %d-%d"), start, stop);
return 0;
}
@@ -457,8 +467,8 @@ static int sun_add_partition(
unsigned int first, last;
if (part->num_sectors && be16_to_cpu(info->id) != SUN_TAG_UNASSIGNED) {
- printf(_("Partition %zd is already defined. Delete "
- "it before re-adding it.\n"), n + 1);
+ fdisk_info(cxt, _("Partition %zd is already defined. Delete "
+ "it before re-adding it."), n + 1);
return -EINVAL;
}
@@ -468,8 +478,8 @@ static int sun_add_partition(
if (n == 2)
whole_disk = 1;
else {
- printf(_("Other partitions already cover the whole disk.\nDelete "
- "some/shrink them before retry.\n"));
+ fdisk_info(cxt, _("Other partitions already cover the "
+ "whole disk. Delete some/shrink them before retry."));
return -EINVAL;
}
}
@@ -491,9 +501,9 @@ static int sun_add_partition(
first += cs - x;
}
if (n == 2 && first != 0)
- printf (_("\
+ fdisk_warnx(cxt, _("\
It is highly recommended that the third partition covers the whole disk\n\
-and is of type `Whole disk'\n"));
+and is of type `Whole disk'"));
/* ewt asks to add: "don't start a partition at cyl 0"
However, edmundo@rano.demon.co.uk writes:
"In addition to having a Sun partition table, to be able to
@@ -519,7 +529,7 @@ and is of type `Whole disk'\n"));
whole_disk = 1;
break;
}
- printf(_("Sector %d is already allocated\n"), first);
+ fdisk_warnx(cxt, _("Sector %d is already allocated"), first);
} else
break;
}
@@ -548,10 +558,10 @@ and is of type `Whole disk'\n"));
whole_disk = 1;
last = stop2;
} else if (last > stop) {
- printf (
+ fdisk_warnx(cxt,
_("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\n"),
+ "to %d %s"),
scround(last), str_units(SINGULAR),
scround(stop), str_units(SINGULAR));
last = stop;
@@ -588,10 +598,10 @@ static int sun_delete_partition(struct fdisk_context *cxt,
!part->start_cylinder &&
(nsec = be32_to_cpu(part->num_sectors))
== cxt->geom.heads * cxt->geom.sectors * cxt->geom.cylinders)
- printf(_("If you want to maintain SunOS/Solaris compatibility, "
- "consider leaving this\n"
+ fdisk_info(cxt, _("If you want to maintain SunOS/Solaris compatibility, "
+ "consider leaving this "
"partition as Whole disk (5), starting at 0, with %u "
- "sectors\n"), nsec);
+ "sectors"), nsec);
info->id = cpu_to_be16(SUN_TAG_UNASSIGNED);
part->num_sectors = 0;
cxt->label->nparts_cur = count_used_partitions(cxt);
@@ -799,8 +809,8 @@ static int sun_set_parttype(
return -EINVAL;
if (i == 2 && t->type != SUN_TAG_WHOLEDISK)
- printf(_("Consider leaving partition 3 as Whole disk (5),\n"
- "as SunOS/Solaris expects it and even Linux likes it.\n\n"));
+ fdisk_info(cxt, _("Consider leaving partition 3 as Whole disk (5),\n"
+ "as SunOS/Solaris expects it and even Linux likes it.\n"));
part = &sunlabel->partitions[i];
info = &sunlabel->vtoc.infos[i];