diff mbox

[PATCHv5,2/3] blockdev: add a function to parse enum ids from strings

Message ID 1400367499-12465-3-git-send-email-pl@kamp.de
State New
Headers show

Commit Message

Peter Lieven May 17, 2014, 10:58 p.m. UTC
this adds a generic function to recover the enum id of a parameter
given as a string.

Signed-off-by: Peter Lieven <pl@kamp.de>
---
 blockdev.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)
diff mbox

Patch

diff --git a/blockdev.c b/blockdev.c
index 7810e9f..8358aa2 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -288,6 +288,23 @@  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)) {