summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2015-03-26 14:08:12 +0000
committerkrw <krw@openbsd.org>2015-03-26 14:08:12 +0000
commit5f3fed51b64d0bc937aa00fe3d40c08792907c2c (patch)
tree91f3b4f7cb8d27f17eb15d1f82d12ed58653e9c4
parentdon't try to load .ssh/identity by default if SSH1 is disabled; ok markus@ (diff)
downloadwireguard-openbsd-5f3fed51b64d0bc937aa00fe3d40c08792907c2c.tar.xz
wireguard-openbsd-5f3fed51b64d0bc937aa00fe3d40c08792907c2c.zip
Expand internal representation of partition starting LBA and size
to 64 bits, adjusting printf()'s, etc. as required. Preparing for GPT partitions. Add 't' size unit. No other intentional functional change.
-rw-r--r--sbin/fdisk/cmd.c16
-rw-r--r--sbin/fdisk/misc.c25
-rw-r--r--sbin/fdisk/misc.h4
-rw-r--r--sbin/fdisk/part.c15
-rw-r--r--sbin/fdisk/part.h6
-rw-r--r--sbin/fdisk/user.c4
6 files changed, 35 insertions, 35 deletions
diff --git a/sbin/fdisk/cmd.c b/sbin/fdisk/cmd.c
index fc9fa34d30e..ef9531fe786 100644
--- a/sbin/fdisk/cmd.c
+++ b/sbin/fdisk/cmd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd.c,v 1.79 2015/03/19 22:48:57 krw Exp $ */
+/* $OpenBSD: cmd.c,v 1.80 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -176,10 +176,10 @@ Xedit(char *args, struct mbr *mbr)
/* Fix up CHS values for LBA */
PRT_fix_CHS(pp);
} else {
- pp->bs = getuint("Partition offset", pp->bs,
- disk.size);
- pp->ns = getuint("Partition size", pp->ns,
- disk.size - pp->bs);
+ pp->bs = getuint64("Partition offset", pp->bs,
+ (u_int64_t)disk.size);
+ pp->ns = getuint64("Partition size", pp->ns,
+ (u_int64_t)(disk.size - pp->bs));
/* Fix up CHS values */
PRT_fix_CHS(pp);
}
@@ -219,8 +219,8 @@ int
Xselect(char *args, struct mbr *mbr)
{
const char *errstr;
- static int firstoff = 0;
- int off;
+ static off_t firstoff = 0;
+ off_t off;
int pn;
pn = strtonum(args, 0, 3, &errstr);
@@ -246,7 +246,7 @@ Xselect(char *args, struct mbr *mbr)
return (CMD_CONT);
} else {
printf("Selected extended partition %d\n", pn);
- printf("New MBR at offset %d.\n", off);
+ printf("New MBR at offset %lld.\n", (long long)off);
}
/* Recursion is beautiful! */
diff --git a/sbin/fdisk/misc.c b/sbin/fdisk/misc.c
index ad4c7a46aa4..94cd3044f2d 100644
--- a/sbin/fdisk/misc.c
+++ b/sbin/fdisk/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.45 2015/03/16 23:51:50 krw Exp $ */
+/* $OpenBSD: misc.c,v 1.46 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -191,8 +191,8 @@ ask_yn(const char *str)
/*
* adapted from sbin/disklabel/editor.c
*/
-u_int32_t
-getuint(char *prompt, u_int32_t oval, u_int32_t maxval)
+u_int64_t
+getuint64(char *prompt, u_int64_t oval, u_int64_t maxval)
{
char buf[BUFSIZ], *endptr, *p, operator = '\0';
size_t n;
@@ -207,7 +207,7 @@ getuint(char *prompt, u_int32_t oval, u_int32_t maxval)
secpercyl = disk.sectors * disk.heads;
do {
- printf("%s: [%u] ", prompt, oval);
+ printf("%s: [%llu] ", prompt, oval);
if (fgets(buf, sizeof(buf), stdin) == NULL)
errx(1, "eof");
@@ -231,7 +231,7 @@ getuint(char *prompt, u_int32_t oval, u_int32_t maxval)
break;
case 'b':
unit = 'b';
- mult = -secsize;
+ mult = -(int64_t)secsize;
buf[--n] = '\0';
break;
case 's':
@@ -242,19 +242,24 @@ getuint(char *prompt, u_int32_t oval, u_int32_t maxval)
case 'k':
unit = 'k';
if (secsize > 1024)
- mult = -secsize / 1024;
+ mult = -(int64_t)secsize / 1024LL;
else
- mult = 1024 / secsize;
+ mult = 1024LL / secsize;
buf[--n] = '\0';
break;
case 'm':
unit = 'm';
- mult = 1048576 / secsize;
+ mult = (1024LL * 1024) / secsize;
buf[--n] = '\0';
break;
case 'g':
unit = 'g';
- mult = 1073741824 / secsize;
+ mult = (1024LL * 1024 * 1024) / secsize;
+ buf[--n] = '\0';
+ break;
+ case 't':
+ unit = 't';
+ mult = (1024LL * 1024 * 1024 * 1024) / secsize;
buf[--n] = '\0';
break;
default:
@@ -301,5 +306,5 @@ getuint(char *prompt, u_int32_t oval, u_int32_t maxval)
}
} while (1);
- return ((u_int32_t)d);
+ return((u_int64_t)d);
}
diff --git a/sbin/fdisk/misc.h b/sbin/fdisk/misc.h
index 302c66dfaba..30e781ccd45 100644
--- a/sbin/fdisk/misc.h
+++ b/sbin/fdisk/misc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.h,v 1.24 2015/03/16 23:51:50 krw Exp $ */
+/* $OpenBSD: misc.h,v 1.25 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -33,6 +33,6 @@ int ask_cmd(char **, char **);
int ask_num(const char *, int, int, int);
int ask_pid(int);
int ask_yn(const char *);
-u_int32_t getuint(char *, u_int32_t, u_int32_t);
+u_int64_t getuint64(char *, u_int64_t, u_int64_t);
#endif /* _MISC_H */
diff --git a/sbin/fdisk/part.c b/sbin/fdisk/part.c
index 50173f680cd..109a45b2b33 100644
--- a/sbin/fdisk/part.c
+++ b/sbin/fdisk/part.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: part.c,v 1.69 2015/03/16 23:51:50 krw Exp $ */
+/* $OpenBSD: part.c,v 1.70 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -222,7 +222,7 @@ PRT_make(struct prt *partn, off_t offset, off_t reloff,
{
off_t off;
u_int32_t ecsave, scsave;
- u_int32_t t;
+ u_int64_t t;
/* Save (and restore below) cylinder info we may fiddle with. */
scsave = partn->scyl;
@@ -255,15 +255,10 @@ PRT_make(struct prt *partn, off_t offset, off_t reloff,
prt->dp_flag = partn->flag & 0xFF;
prt->dp_typ = partn->id & 0xFF;
-#if 0 /* XXX */
- prt->dp_start = htole32(partn->bs - off);
- prt->dp_size = htole32(partn->ns);
-#else
- t = htole32(partn->bs - off);
+ t = htole64(partn->bs - off);
memcpy(&prt->dp_start, &t, sizeof(u_int32_t));
- t = htole32(partn->ns);
+ t = htole64(partn->ns);
memcpy(&prt->dp_size, &t, sizeof(u_int32_t));
-#endif
partn->scyl = scsave;
partn->ecyl = ecsave;
@@ -284,7 +279,7 @@ PRT_print(int num, struct prt *partn, char *units)
} else {
size = ((double)partn->ns * unit_types[SECTORS].conversion) /
unit_types[i].conversion;
- printf("%c%1d: %.2X %6u %3u %3u - %6u %3u %3u [%12u:%12.0f%s] %s\n",
+ printf("%c%1d: %.2X %6u %3u %3u - %6u %3u %3u [%12llu:%12.0f%s] %s\n",
(partn->flag == 0x80)?'*':' ',
num, partn->id,
partn->scyl, partn->shead, partn->ssect,
diff --git a/sbin/fdisk/part.h b/sbin/fdisk/part.h
index 1c16f7f02f8..645c1c8c2df 100644
--- a/sbin/fdisk/part.h
+++ b/sbin/fdisk/part.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: part.h,v 1.18 2015/03/16 23:51:50 krw Exp $ */
+/* $OpenBSD: part.h,v 1.19 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -20,10 +20,10 @@
#define _PART_H
struct prt {
+ u_int64_t bs;
+ u_int64_t ns;
u_int32_t shead, scyl, ssect;
u_int32_t ehead, ecyl, esect;
- u_int32_t bs;
- u_int32_t ns;
unsigned char flag;
unsigned char id;
};
diff --git a/sbin/fdisk/user.c b/sbin/fdisk/user.c
index 1a25339bd35..073c099d44b 100644
--- a/sbin/fdisk/user.c
+++ b/sbin/fdisk/user.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: user.c,v 1.42 2015/03/18 14:46:59 krw Exp $ */
+/* $OpenBSD: user.c,v 1.43 2015/03/26 14:08:12 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -149,7 +149,7 @@ USER_print_disk(void)
break;
MBR_parse(&dos_mbr, offset, firstoff, &mbr);
- printf("Offset: %lld\t", offset);
+ printf("Offset: %lld\t", (long long)offset);
MBR_print(&mbr, NULL);
/* Print out extended partitions too */