On 04/28/2018 09:41 AM, Max Reitz wrote:
This is basically what everything else in the qemu code base does, so we
can do it here, too.

Signed-off-by: Max Reitz <mre...@redhat.com>
---
  include/qemu-io.h |   4 +-
  qemu-io-cmds.c    | 346 ++++++++++++++++++++++++++++++++----------------------
  qemu-io.c         |  34 ++++--
  3 files changed, 227 insertions(+), 157 deletions(-)

diff --git a/include/qemu-io.h b/include/qemu-io.h
index 06cdfbf660..380724ad59 100644
--- a/include/qemu-io.h
+++ b/include/qemu-io.h
@@ -22,7 +22,7 @@
#define CMD_FLAG_GLOBAL ((int)0x80000000) /* don't iterate "args" */ -typedef void (*cfunc_t)(BlockBackend *blk, int argc, char **argv);
+typedef int (*cfunc_t)(BlockBackend *blk, int argc, char **argv);

Quite a bit of churn on the definition here; squashing 1 and 2 might make for a smaller patch. But I agree that doing it this way (2 separate patches) forces us to audit (with the compiler's help) that all callers are caught and adjusted to the new semantics.

However, a comment before the typedef would be useful, so that writing a new command knows what semantics it must provide. It can be as simple as:

/* Implement a qemu-io command.
 * Operate on @blk using @argc/@argv as the command's arguments, and
 * return 0 on success or negative errno on failure.
 */

With a comment added,
Reviewed-by: Eric Blake <ebl...@redhat.com>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to