From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34397) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yxwoh-0005Q6-QG for qemu-devel@nongnu.org; Thu, 28 May 2015 08:21:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yxwof-0007zl-Br for qemu-devel@nongnu.org; Thu, 28 May 2015 08:21:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51216) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yxwof-0007zU-53 for qemu-devel@nongnu.org; Thu, 28 May 2015 08:21:41 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id D8E722B6494 for ; Thu, 28 May 2015 12:21:40 +0000 (UTC) From: Markus Armbruster Date: Thu, 28 May 2015 14:21:33 +0200 Message-Id: <1432815695-31687-8-git-send-email-armbru@redhat.com> In-Reply-To: <1432815695-31687-1-git-send-email-armbru@redhat.com> References: <1432815695-31687-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH 7/9] QemuOpts: Drop qemu_opt_foreach() parameter abort_on_failure List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com When the argument is non-zero, qemu_opt_foreach() stops on callback returning non-zero, and returns that value. When the argument is zero, it doesn't stop, and returns the callback's value from the last iteration. The two callers that pass zero could just as well pass one: * qemu_spice_init()'s callback add_channel() either returns zero or exit()s. * config_write_opts()'s callback config_write_opt() always returns zero. Drop the parameter, and always stop. Signed-off-by: Markus Armbruster --- include/qemu/option.h | 3 +-- net/vhost-user.c | 2 +- qdev-monitor.c | 2 +- ui/spice-core.c | 2 +- util/qemu-config.c | 2 +- util/qemu-option.c | 17 +++++++++++------ vl.c | 4 ++-- 7 files changed, 18 insertions(+), 14 deletions(-) diff --git a/include/qemu/option.h b/include/qemu/option.h index a3850b2..a3cf4c1 100644 --- a/include/qemu/option.h +++ b/include/qemu/option.h @@ -101,8 +101,7 @@ void qemu_opt_set_bool(QemuOpts *opts, const char *name, bool val, void qemu_opt_set_number(QemuOpts *opts, const char *name, int64_t val, Error **errp); typedef int (*qemu_opt_loopfunc)(const char *name, const char *value, void *opaque); -int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque, - int abort_on_failure); +int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque); QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id); QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, diff --git a/net/vhost-user.c b/net/vhost-user.c index 545f203..dae0965 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -185,7 +185,7 @@ static CharDriverState *net_vhost_parse_chardev(const NetdevVhostUserOptions *op /* inspect chardev opts */ memset(&props, 0, sizeof(props)); - if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, true) != 0) { + if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props)) { return NULL; } diff --git a/qdev-monitor.c b/qdev-monitor.c index 1d87f57..da2cbc9 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -564,7 +564,7 @@ DeviceState *qdev_device_add(QemuOpts *opts) } /* set properties */ - if (qemu_opt_foreach(opts, set_property, dev, 1) != 0) { + if (qemu_opt_foreach(opts, set_property, dev)) { object_unparent(OBJECT(dev)); object_unref(OBJECT(dev)); return NULL; diff --git a/ui/spice-core.c b/ui/spice-core.c index f00e074..1338d86 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -782,7 +782,7 @@ void qemu_spice_init(void) spice_server_set_playback_compression (spice_server, qemu_opt_get_bool(opts, "playback-compression", 1)); - qemu_opt_foreach(opts, add_channel, &tls_port, 0); + qemu_opt_foreach(opts, add_channel, &tls_port); spice_server_set_name(spice_server, qemu_name); spice_server_set_uuid(spice_server, qemu_uuid); diff --git a/util/qemu-config.c b/util/qemu-config.c index 281c47d..f5965ab 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -353,7 +353,7 @@ static int config_write_opts(void *opaque, QemuOpts *opts, Error **errp) } else { fprintf(data->fp, "[%s]\n", data->list->name); } - qemu_opt_foreach(opts, config_write_opt, data, 0); + qemu_opt_foreach(opts, config_write_opt, data); fprintf(data->fp, "\n"); return 0; } diff --git a/util/qemu-option.c b/util/qemu-option.c index b56aac8..e1f28fc 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -596,18 +596,23 @@ void qemu_opt_set_number(QemuOpts *opts, const char *name, int64_t val, QTAILQ_INSERT_TAIL(&opts->head, opt, next); } -int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque, - int abort_on_failure) +/** + * For each member of @opts, call @func(name, value, @opaque). + * When @func() returns non-zero, break the loop and return that value. + * Return zero when the loop completes. + */ +int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque) { QemuOpt *opt; - int rc = 0; + int rc; QTAILQ_FOREACH(opt, &opts->head, next) { rc = func(opt->name, opt->str, opaque); - if (abort_on_failure && rc != 0) - break; + if (rc) { + return rc; + } } - return rc; + return 0; } QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id) diff --git a/vl.c b/vl.c index 84a19a9..5b51e6d 100644 --- a/vl.c +++ b/vl.c @@ -4065,8 +4065,8 @@ int main(int argc, char **argv, char **envp) } machine_opts = qemu_get_machine_opts(); - if (qemu_opt_foreach(machine_opts, machine_set_property, current_machine, - 1) < 0) { + if (qemu_opt_foreach(machine_opts, machine_set_property, + current_machine)) { object_unref(OBJECT(current_machine)); exit(1); } -- 1.9.3