Commit 82a402e9 authored by Peter Lieven's avatar Peter Lieven Committed by Kevin Wolf
Browse files

blockdev: add a function to parse enum ids from strings



this adds a generic function to recover the enum id of a parameter
given as a string.

Signed-off-by: default avatarPeter Lieven <pl@kamp.de>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 43f35cb5
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -288,6 +288,25 @@ static int parse_block_error_action(const char *buf, bool is_read, Error **errp)
    }
}

static inline int parse_enum_option(const char *lookup[], const char *buf,
                                    int max, int def, Error **errp)
{
    int i;

    if (!buf) {
        return def;
    }

    for (i = 0; i < max; i++) {
        if (!strcmp(buf, lookup[i])) {
            return i;
        }
    }

    error_setg(errp, "invalid parameter value: %s", buf);
    return def;
}

static bool check_throttle_config(ThrottleConfig *cfg, Error **errp)
{
    if (throttle_conflicting(cfg)) {