From: Kevin Wolf <kwolf@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, stefanha@redhat.com,
lcapitulino@redhat.com
Subject: [Qemu-devel] [PATCH v2 02/16] cutils: Support 'P' and 'E' suffixes in strtosz()
Date: Wed, 5 Jun 2013 14:19:27 +0200 [thread overview]
Message-ID: <1370434781-28570-3-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1370434781-28570-1-git-send-email-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
include/qemu-common.h | 2 ++
monitor.c | 8 ++++----
qemu-img.c | 10 ++++++----
tests/qemu-iotests/049.out | 8 ++++----
util/cutils.c | 4 ++++
5 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/include/qemu-common.h b/include/qemu-common.h
index cb82ef3..d95ea1e 100644
--- a/include/qemu-common.h
+++ b/include/qemu-common.h
@@ -191,6 +191,8 @@ int parse_uint_full(const char *s, unsigned long long *value, int base);
* A-Z, as strtosz() will use qemu_toupper() on the given argument
* prior to comparison.
*/
+#define STRTOSZ_DEFSUFFIX_EB 'E'
+#define STRTOSZ_DEFSUFFIX_PB 'P'
#define STRTOSZ_DEFSUFFIX_TB 'T'
#define STRTOSZ_DEFSUFFIX_GB 'G'
#define STRTOSZ_DEFSUFFIX_MB 'M'
diff --git a/monitor.c b/monitor.c
index eefc7f0..9d279b8 100644
--- a/monitor.c
+++ b/monitor.c
@@ -93,10 +93,10 @@
* 'M' Non-negative target long (32 or 64 bit), in user mode the
* value is multiplied by 2^20 (think Mebibyte)
* 'o' octets (aka bytes)
- * user mode accepts an optional T, t, G, g, M, m, K, k
- * suffix, which multiplies the value by 2^40 for
- * suffixes T and t, 2^30 for suffixes G and g, 2^20 for
- * M and m, 2^10 for K and k
+ * user mode accepts an optional E, e, P, p, T, t, G, g, M, m,
+ * K, k suffix, which multiplies the value by 2^60 for suffixes E
+ * and e, 2^50 for suffixes P and p, 2^40 for suffixes T and t,
+ * 2^30 for suffixes G and g, 2^20 for M and m, 2^10 for K and k
* 'T' double
* user mode accepts an optional ms, us, ns suffix,
* which divides the value by 1e3, 1e6, 1e9, respectively
diff --git a/qemu-img.c b/qemu-img.c
index 5aba409..bdb5ead 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -85,8 +85,9 @@ static void help(void)
" options are: 'none', 'writeback' (default, except for convert), 'writethrough',\n"
" 'directsync' and 'unsafe' (default for convert)\n"
" 'size' is the disk image size in bytes. Optional suffixes\n"
- " 'k' or 'K' (kilobyte, 1024), 'M' (megabyte, 1024k), 'G' (gigabyte, 1024M)\n"
- " and T (terabyte, 1024G) are supported. 'b' is ignored.\n"
+ " 'k' or 'K' (kilobyte, 1024), 'M' (megabyte, 1024k), 'G' (gigabyte, 1024M),\n"
+ " 'T' (terabyte, 1024G), 'P' (petabyte, 1024T) and 'E' (exabyte, 1024P) are\n"
+ " supported. 'b' is ignored.\n"
" 'output_filename' is the destination disk image filename\n"
" 'output_fmt' is the destination format\n"
" 'options' is a comma separated list of format specific options in a\n"
@@ -387,8 +388,9 @@ static int img_create(int argc, char **argv)
error_report("Image size must be less than 8 EiB!");
} else {
error_report("Invalid image size specified! You may use k, M, "
- "G or T suffixes for ");
- error_report("kilobytes, megabytes, gigabytes and terabytes.");
+ "G, T, P or E suffixes for ");
+ error_report("kilobytes, megabytes, gigabytes, terabytes, "
+ "petabytes and exabytes.");
}
return 1;
}
diff --git a/tests/qemu-iotests/049.out b/tests/qemu-iotests/049.out
index 72db13f..d2f0efe 100644
--- a/tests/qemu-iotests/049.out
+++ b/tests/qemu-iotests/049.out
@@ -108,15 +108,15 @@ qemu-img: Formatting or formatting option not supported for file format 'qcow2'
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=-1024 encryption=off cluster_size=65536 lazy_refcounts=off
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- 1kilobyte
-qemu-img: Invalid image size specified! You may use k, M, G or T suffixes for
-qemu-img: kilobytes, megabytes, gigabytes and terabytes.
+qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for
+qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
qemu-img create -f qcow2 -o size=1kilobyte TEST_DIR/t.qcow2
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 size=1024 encryption=off cluster_size=65536 lazy_refcounts=off
qemu-img create -f qcow2 TEST_DIR/t.qcow2 -- foobar
-qemu-img: Invalid image size specified! You may use k, M, G or T suffixes for
-qemu-img: kilobytes, megabytes, gigabytes and terabytes.
+qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for
+qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.
qemu-img create -f qcow2 -o size=foobar TEST_DIR/t.qcow2
qemu-img: Parameter 'size' expects a size
diff --git a/util/cutils.c b/util/cutils.c
index a165819..8f28896 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -267,6 +267,10 @@ static int64_t suffix_mul(char suffix, int64_t unit)
return unit * unit * unit;
case STRTOSZ_DEFSUFFIX_TB:
return unit * unit * unit * unit;
+ case STRTOSZ_DEFSUFFIX_PB:
+ return unit * unit * unit * unit * unit;
+ case STRTOSZ_DEFSUFFIX_EB:
+ return unit * unit * unit * unit * unit * unit;
}
return -1;
}
--
1.8.1.4
next prev parent reply other threads:[~2013-06-05 12:20 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-05 12:19 [Qemu-devel] [PATCH v2 00/16] Make qemu-io commands available in the monitor Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 01/16] qemu-io: Remove unused args_command Kevin Wolf
2013-06-05 12:19 ` Kevin Wolf [this message]
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 03/16] qemu-io: Make cvtnum() a wrapper around strtosz_suffix() Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 04/16] qemu-io: Handle cvtnum() errors in 'alloc' Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 05/16] qemu-io: Don't use global bs in command implementations Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 06/16] qemu-io: Split off commands to qemu-io-cmds.c Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 07/16] qemu-io: Factor out qemuio_command Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 08/16] qemu-io: Move 'help' function Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 09/16] qemu-io: Move 'quit' function Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 10/16] qemu-io: Move qemu_strsep() to cutils.c Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 11/16] qemu-io: Move functions for registering and running commands Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 12/16] qemu-io: Move command_loop() and friends Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 13/16] qemu-io: Move remaining helpers from cmd.c Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 14/16] qemu-io: Interface cleanup Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 15/16] qemu-io: Use the qemu version for -V Kevin Wolf
2013-06-05 12:19 ` [Qemu-devel] [PATCH v2 16/16] Make qemu-io commands available in HMP Kevin Wolf
2013-06-07 14:17 ` Luiz Capitulino
2013-06-06 9:46 ` [Qemu-devel] [PATCH v2 00/16] Make qemu-io commands available in the monitor Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1370434781-28570-3-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).