diff options
-rw-r--r-- | sbin/fdisk/cmd.c | 16 | ||||
-rw-r--r-- | sbin/fdisk/misc.c | 25 | ||||
-rw-r--r-- | sbin/fdisk/misc.h | 4 | ||||
-rw-r--r-- | sbin/fdisk/part.c | 15 | ||||
-rw-r--r-- | sbin/fdisk/part.h | 6 | ||||
-rw-r--r-- | sbin/fdisk/user.c | 4 |
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 */ |