Commit 71df1d83 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

QemuOpts: Convert qemu_opt_foreach() to Error



Retain the function value for now, to permit selective conversion of
its callers.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 1640b200
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -100,8 +100,11 @@ void qemu_opt_set_bool(QemuOpts *opts, const char *name, bool val,
                       Error **errp);
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);
typedef int (*qemu_opt_loopfunc)(void *opaque,
                                 const char *name, const char *value,
                                 Error **errp);
int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque,
                     Error **errp);

QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id);
QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id,
+4 −3
Original line number Diff line number Diff line
@@ -157,8 +157,9 @@ static int net_vhost_user_init(NetClientState *peer, const char *device,
    return 0;
}

static int net_vhost_chardev_opts(const char *name, const char *value,
                                  void *opaque)
static int net_vhost_chardev_opts(void *opaque,
                                  const char *name, const char *value,
                                  Error **errp)
{
    VhostUserChardevProps *props = opaque;

@@ -189,7 +190,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)) {
    if (qemu_opt_foreach(chr->opts, net_vhost_chardev_opts, &props, NULL)) {
        return NULL;
    }

+3 −2
Original line number Diff line number Diff line
@@ -143,7 +143,8 @@ static void qdev_print_devinfos(bool show_no_user)
    g_slist_free(list);
}

static int set_property(const char *name, const char *value, void *opaque)
static int set_property(void *opaque, const char *name, const char *value,
                        Error **errp)
{
    Object *obj = opaque;
    Error *err = NULL;
@@ -564,7 +565,7 @@ DeviceState *qdev_device_add(QemuOpts *opts)
    }

    /* set properties */
    if (qemu_opt_foreach(opts, set_property, dev)) {
    if (qemu_opt_foreach(opts, set_property, dev, NULL)) {
        object_unparent(OBJECT(dev));
        object_unref(OBJECT(dev));
        return NULL;
+3 −2
Original line number Diff line number Diff line
@@ -583,7 +583,8 @@ int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
    return ret;
}

static int add_channel(const char *name, const char *value, void *opaque)
static int add_channel(void *opaque, const char *name, const char *value,
                       Error **errp)
{
    int security = 0;
    int rc;
@@ -782,7 +783,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);
    qemu_opt_foreach(opts, add_channel, &tls_port, NULL);

    spice_server_set_name(spice_server, qemu_name);
    spice_server_set_uuid(spice_server, qemu_uuid);
+3 −2
Original line number Diff line number Diff line
@@ -335,7 +335,8 @@ struct ConfigWriteData {
    FILE *fp;
};

static int config_write_opt(const char *name, const char *value, void *opaque)
static int config_write_opt(void *opaque, const char *name, const char *value,
                            Error **errp)
{
    struct ConfigWriteData *data = opaque;

@@ -353,7 +354,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);
    qemu_opt_foreach(opts, config_write_opt, data, NULL);
    fprintf(data->fp, "\n");
    return 0;
}
Loading