Commit 28d0de7a authored by Markus Armbruster's avatar Markus Armbruster
Browse files

QemuOpts: Convert qemu_opts_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>
Acked-by: default avatarKevin Wolf <kwolf@redhat.com>
parent a4c7367f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -219,7 +219,7 @@ struct add_rule_data {
    Error **errp;
};

static int add_rule(QemuOpts *opts, void *opaque)
static int add_rule(void *opaque, QemuOpts *opts, Error **errp)
{
    struct add_rule_data *d = opaque;
    BDRVBlkdebugState *s = d->s;
@@ -320,7 +320,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
    d.s = s;
    d.action = ACTION_INJECT_ERROR;
    d.errp = &local_err;
    qemu_opts_foreach(&inject_error_opts, add_rule, &d);
    qemu_opts_foreach(&inject_error_opts, add_rule, &d, NULL);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;
@@ -328,7 +328,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
    }

    d.action = ACTION_SET_STATE;
    qemu_opts_foreach(&set_state_opts, add_rule, &d);
    qemu_opts_foreach(&set_state_opts, add_rule, &d, NULL);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;
+3 −2
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ void qdev_set_nic_properties(DeviceState *dev, NICInfo *nd)
    nd->instantiated = 1;
}

static int qdev_add_one_global(QemuOpts *opts, void *opaque)
static int qdev_add_one_global(void *opaque, QemuOpts *opts, Error **errp)
{
    GlobalProperty *g;

@@ -404,5 +404,6 @@ static int qdev_add_one_global(QemuOpts *opts, void *opaque)

void qemu_add_globals(void)
{
    qemu_opts_foreach(qemu_find_opts("global"), qdev_add_one_global, NULL);
    qemu_opts_foreach(qemu_find_opts("global"),
                      qdev_add_one_global, NULL, NULL);
}
+2 −2
Original line number Diff line number Diff line
@@ -125,9 +125,9 @@ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list, const QDict *qdict,
QDict *qemu_opts_to_qdict(QemuOpts *opts, QDict *qdict);
void qemu_opts_absorb_qdict(QemuOpts *opts, QDict *qdict, Error **errp);

typedef int (*qemu_opts_loopfunc)(QemuOpts *opts, void *opaque);
typedef int (*qemu_opts_loopfunc)(void *opaque, QemuOpts *opts, Error **errp);
int qemu_opts_foreach(QemuOptsList *list, qemu_opts_loopfunc func,
                      void *opaque);
                      void *opaque, Error **errp);
void qemu_opts_print(QemuOpts *opts, const char *sep);
void qemu_opts_print_help(QemuOptsList *list);
void qemu_opts_free(QemuOptsList *list);
+1 −1
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ char *vnc_display_local_addr(const char *id);
int vnc_display_password(const char *id, const char *password);
int vnc_display_pw_expire(const char *id, time_t expires);
QemuOpts *vnc_parse_func(const char *str);
int vnc_init_func(QemuOpts *opts, void *opaque);
int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp);
#else
static inline int vnc_display_password(const char *id, const char *password)
{
+5 −4
Original line number Diff line number Diff line
@@ -1329,7 +1329,7 @@ void net_check_clients(void)
    }
}

static int net_init_client(QemuOpts *opts, void *dummy)
static int net_init_client(void *dummy, QemuOpts *opts, Error **errp)
{
    Error *local_err = NULL;

@@ -1342,7 +1342,7 @@ static int net_init_client(QemuOpts *opts, void *dummy)
    return 0;
}

static int net_init_netdev(QemuOpts *opts, void *dummy)
static int net_init_netdev(void *dummy, QemuOpts *opts, Error **errp)
{
    Error *local_err = NULL;
    int ret;
@@ -1373,11 +1373,12 @@ int net_init_clients(void)

    QTAILQ_INIT(&net_clients);

    if (qemu_opts_foreach(qemu_find_opts("netdev"), net_init_netdev, NULL)) {
    if (qemu_opts_foreach(qemu_find_opts("netdev"),
                          net_init_netdev, NULL, NULL)) {
        return -1;
    }

    if (qemu_opts_foreach(net, net_init_client, NULL)) {
    if (qemu_opts_foreach(net, net_init_client, NULL, NULL)) {
        return -1;
    }

Loading