diff options
author | Markus Armbruster <armbru@redhat.com> | 2015-03-12 07:45:10 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-06-09 07:40:23 +0200 |
commit | 1640b200d53e3d981f12a192fe84b7bb7958c065 (patch) | |
tree | bea7e4594fee170e218d8b83d43815649551a4b4 | |
parent | 8809cfc38e4e93884d664bb00108fc71b423f589 (diff) |
QemuOpts: Drop qemu_opt_foreach() parameter abort_on_failure
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 <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
-rw-r--r-- | include/qemu/option.h | 3 | ||||
-rw-r--r-- | net/vhost-user.c | 2 | ||||
-rw-r--r-- | qdev-monitor.c | 2 | ||||
-rw-r--r-- | ui/spice-core.c | 2 | ||||
-rw-r--r-- | util/qemu-config.c | 2 | ||||
-rw-r--r-- | util/qemu-option.c | 17 | ||||
-rw-r--r-- | vl.c | 4 |
7 files changed, 18 insertions, 14 deletions
diff --git a/include/qemu/option.h b/include/qemu/option.h index a3850b23a4..a3cf4c1981 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 cce168af2f..167082e76e 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -189,7 +189,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 9f17c81d9f..b7a2150577 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 2e8384e653..60818d9960 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 a88461f6b7..aff4cb37c0 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 07b03e313a..296e2b3fae 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) @@ -4070,8 +4070,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); } |