summaryrefslogtreecommitdiff
path: root/sbin/fdisk
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2021-06-25 19:24:54 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2021-06-25 19:24:54 +0000
commit6ebdbef7ecbc9ad2b8ede50e6e342a90efacdafb (patch)
tree680d9fafeae4acd32925fcbfa257bf225d4ba3eb /sbin/fdisk
parent1a0da8de4e6bf937e01ae74387cc0af7e4effaee (diff)
Replace instances of the magic number '64' with a nice #define
BLOCKALIGNMENT. This will make it more obvious where this 512-byte block count could/should be converted to a disk sector count. No functional change.
Diffstat (limited to 'sbin/fdisk')
-rw-r--r--sbin/fdisk/disk.h5
-rw-r--r--sbin/fdisk/fdisk.c16
-rw-r--r--sbin/fdisk/gpt.c11
-rw-r--r--sbin/fdisk/misc.c19
4 files changed, 27 insertions, 24 deletions
diff --git a/sbin/fdisk/disk.h b/sbin/fdisk/disk.h
index 4f549e4bd3b..416aa6af8bb 100644
--- a/sbin/fdisk/disk.h
+++ b/sbin/fdisk/disk.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: disk.h,v 1.22 2021/05/07 22:15:13 krw Exp $ */
+/* $OpenBSD: disk.h,v 1.23 2021/06/25 19:24:53 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -28,6 +28,9 @@ struct disk {
uint32_t size;
};
+/* Align partition starts/sizes on 32K-byte boundaries. */
+#define BLOCKALIGNMENT 64
+
void DISK_open(int);
int DISK_printgeometry(char *);
char *DISK_readsector(off_t);
diff --git a/sbin/fdisk/fdisk.c b/sbin/fdisk/fdisk.c
index c76ae1f366a..b1f3870a964 100644
--- a/sbin/fdisk/fdisk.c
+++ b/sbin/fdisk/fdisk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fdisk.c,v 1.112 2021/06/23 13:07:13 krw Exp $ */
+/* $OpenBSD: fdisk.c,v 1.113 2021/06/25 19:24:53 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -124,13 +124,13 @@ main(int argc, char *argv[])
parse_b(optarg, &b_sectors, &b_offset, &b_type);
break;
case 'l':
- l_arg = strtonum(optarg, 64, UINT32_MAX, &errstr);
+ l_arg = strtonum(optarg, BLOCKALIGNMENT, UINT32_MAX, &errstr);
if (errstr)
- errx(1, "Block argument %s [64..%u].", errstr,
- UINT32_MAX);
- disk.cylinders = l_arg / 64;
+ errx(1, "Block argument %s [%u..%u].", errstr,
+ BLOCKALIGNMENT, UINT32_MAX);
+ disk.cylinders = l_arg / BLOCKALIGNMENT;
disk.heads = 1;
- disk.sectors = 64;
+ disk.sectors = BLOCKALIGNMENT;
disk.size = l_arg;
break;
case 'y':
@@ -169,9 +169,9 @@ main(int argc, char *argv[])
if (l_arg % bps != 0)
l_arg += bps - l_arg % bps;
l_arg = DL_BLKTOSEC(&dl, l_arg);
- disk.cylinders = l_arg / 64;
+ disk.cylinders = l_arg / BLOCKALIGNMENT;
disk.heads = 1;
- disk.sectors = 64;
+ disk.sectors = BLOCKALIGNMENT;
disk.size = l_arg;
}
diff --git a/sbin/fdisk/gpt.c b/sbin/fdisk/gpt.c
index a446ef437e6..83e5201f58d 100644
--- a/sbin/fdisk/gpt.c
+++ b/sbin/fdisk/gpt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gpt.c,v 1.32 2021/06/21 02:05:30 krw Exp $ */
+/* $OpenBSD: gpt.c,v 1.33 2021/06/25 19:24:53 krw Exp $ */
/*
* Copyright (c) 2015 Markus Muller <mmu@grummel.net>
* Copyright (c) 2015 Kenneth R Westerback <krw@openbsd.org>
@@ -334,8 +334,8 @@ add_partition(const uint8_t *beuuid, const char *name, uint64_t sectors)
if (rslt == -1)
goto done;
- if (start % 64)
- start += (64 - start % 64);
+ if (start % BLOCKALIGNMENT)
+ start += (BLOCKALIGNMENT - start % BLOCKALIGNMENT);
if (start >= end)
goto done;
@@ -386,9 +386,8 @@ init_gh(void)
needed = sizeof(gp) / secsize + 2;
- /* Start usable LBA area on 64 sector boundary. */
- if (needed % 64)
- needed += (64 - (needed % 64));
+ if (needed % BLOCKALIGNMENT)
+ needed += (needed - (needed % BLOCKALIGNMENT));
gh.gh_sig = htole64(GPTSIGNATURE);
gh.gh_rev = htole32(GPTREVISION);
diff --git a/sbin/fdisk/misc.c b/sbin/fdisk/misc.c
index 8885d4659e5..56a80686e5c 100644
--- a/sbin/fdisk/misc.c
+++ b/sbin/fdisk/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.68 2021/06/20 18:44:19 krw Exp $ */
+/* $OpenBSD: misc.c,v 1.69 2021/06/25 19:24:53 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -411,11 +411,11 @@ parse_b(const char *arg, uint32_t *blocks, uint32_t *offset, uint8_t *type)
uint32_t blockcount, blockoffset;
uint8_t partitiontype;
- blockoffset = 64;
+ blockoffset = BLOCKALIGNMENT;
partitiontype = DOSPTYP_EFISYS;
ptype = NULL;
- /* First number: # of sectors in boot partition. */
+ /* First number: # of 512-byte blocks in boot partition. */
poffset = strchr(arg, '@');
if (poffset != NULL)
*poffset++ = '\0';
@@ -425,18 +425,19 @@ parse_b(const char *arg, uint32_t *blocks, uint32_t *offset, uint8_t *type)
*ptype++ = '\0';
}
- blockcount = strtonum(arg, 64, UINT32_MAX, &errstr);
+ blockcount = strtonum(arg, BLOCKALIGNMENT, UINT32_MAX, &errstr);
if (errstr)
- errx(1, "Block argument %s [64..%u].",
- errstr, UINT32_MAX);
+ errx(1, "Block argument %s [%u..%u].", errstr, BLOCKALIGNMENT,
+ UINT32_MAX);
if (poffset == NULL)
goto done;
- blockoffset = strtonum(poffset, 64, UINT32_MAX, &errstr);
+ /* Second number: # of 512-byte blocks to offset partition start. */
+ blockoffset = strtonum(poffset, BLOCKALIGNMENT, UINT32_MAX, &errstr);
if (errstr)
- errx(1, "Block offset argument %s "
- "[64..%u].", errstr, UINT32_MAX);
+ errx(1, "Block offset argument %s [%u..%u].", errstr,
+ BLOCKALIGNMENT, UINT32_MAX);
if (ptype == NULL)
goto done;