From: Peter Lieven <p...@kamp.de>

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

Signed-off-by: Peter Lieven <p...@kamp.de>
Signed-off-by: Kevin Wolf <kw...@redhat.com>
---
 blockdev.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/blockdev.c b/blockdev.c
index 7810e9f..78b927f 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -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)) {
-- 
1.8.3.1


Reply via email to