diff options
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/fdisk/misc.c | 18 | ||||
-rw-r--r-- | sbin/fdisk/misc.h | 4 |
2 files changed, 12 insertions, 10 deletions
diff --git a/sbin/fdisk/misc.c b/sbin/fdisk/misc.c index 94cd3044f2d..e070ac868e6 100644 --- a/sbin/fdisk/misc.c +++ b/sbin/fdisk/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.46 2015/03/26 14:08:12 krw Exp $ */ +/* $OpenBSD: misc.c,v 1.47 2015/03/26 16:32:16 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -30,12 +30,13 @@ #include "part.h" struct unit_type unit_types[] = { - {"b", 1 , "Bytes"}, - {" ", 0 , "Sectors"}, /* Filled in from disklabel. */ - {"K", 1024 , "Kilobytes"}, - {"M", 1024 * 1024 , "Megabytes"}, - {"G", 1024 * 1024 *1024 , "Gigabytes"}, - {NULL, 0 , NULL }, + { "b" , 1LL , "Bytes" }, + { " " , 0LL , "Sectors" }, + { "K" , 1024LL , "Kilobytes" }, + { "M" , 1024LL * 1024 , "Megabytes" }, + { "G" , 1024LL * 1024 *1024 , "Gigabytes" }, + { "T" , 1024LL * 1024 * 1024 * 1024 , "Terabytes" }, + { NULL , 0 , NULL }, }; int @@ -194,9 +195,10 @@ ask_yn(const char *str) u_int64_t getuint64(char *prompt, u_int64_t oval, u_int64_t maxval) { + const int secsize = unit_types[SECTORS].conversion; char buf[BUFSIZ], *endptr, *p, operator = '\0'; size_t n; - int mult = 1, secsize = unit_types[SECTORS].conversion; + int64_t mult = 1; double d, d2; int secpercyl, saveerr; char unit; diff --git a/sbin/fdisk/misc.h b/sbin/fdisk/misc.h index 30e781ccd45..fb956437764 100644 --- a/sbin/fdisk/misc.h +++ b/sbin/fdisk/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.25 2015/03/26 14:08:12 krw Exp $ */ +/* $OpenBSD: misc.h,v 1.26 2015/03/26 16:32:16 krw Exp $ */ /* * Copyright (c) 1997 Tobias Weingartner @@ -21,7 +21,7 @@ struct unit_type { char *abbr; - int conversion; + int64_t conversion; char *lname; }; extern struct unit_type unit_types[]; |