Re: [Qemu-devel] [PATCHv2 1/3] rename parse_enum_option to qapi_enum_parse and make it public

2014-08-14 Thread Benoît Canet
The Wednesday 13 Aug 2014 à 19:20:17 (+0200), Peter Lieven wrote :
 relaxing the license to LGPLv2+ is intentional.
 
 Suggested-by: Markus Armbruster arm...@redhat.com
 Signed-off-by: Hu Tao hu...@cn.fujitsu.com
 Signed-off-by: Peter Lieven p...@kamp.de
 Reviewed-by: Eric Blake ebl...@redhat.com
 ---
  blockdev.c  |   30 ++
  include/qapi/util.h |   17 +
  qapi/Makefile.objs  |2 +-
  qapi/qapi-util.c|   34 ++
  4 files changed, 58 insertions(+), 25 deletions(-)
  create mode 100644 include/qapi/util.h
  create mode 100644 qapi/qapi-util.c
 
 diff --git a/blockdev.c b/blockdev.c
 index 48bd9a3..9b93cf2 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -39,6 +39,7 @@
  #include qapi/qmp/types.h
  #include qapi-visit.h
  #include qapi/qmp-output-visitor.h
 +#include qapi/util.h
  #include sysemu/sysemu.h
  #include block/block_int.h
  #include qmp-commands.h
 @@ -274,25 +275,6 @@ 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)) {
 @@ -456,11 +438,11 @@ static DriveInfo *blockdev_init(const char *file, QDict 
 *bs_opts,
  }
  
  detect_zeroes =
 -parse_enum_option(BlockdevDetectZeroesOptions_lookup,
 -  qemu_opt_get(opts, detect-zeroes),
 -  BLOCKDEV_DETECT_ZEROES_OPTIONS_MAX,
 -  BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF,
 -  error);
 +qapi_enum_parse(BlockdevDetectZeroesOptions_lookup,
 +qemu_opt_get(opts, detect-zeroes),
 +BLOCKDEV_DETECT_ZEROES_OPTIONS_MAX,
 +BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF,
 +error);
  if (error) {
  error_propagate(errp, error);
  goto early_err;
 diff --git a/include/qapi/util.h b/include/qapi/util.h
 new file mode 100644
 index 000..de9238b
 --- /dev/null
 +++ b/include/qapi/util.h
 @@ -0,0 +1,17 @@
 +/*
 + * QAPI util functions
 + *
 + * Copyright Fujitsu, Inc. 2014
 + *
 + * This work is licensed under the terms of the GNU LGPL, version 2.1 or 
 later.
 + * See the COPYING.LIB file in the top-level directory.
 + *
 + */
 +
 +#ifndef QAPI_UTIL_H
 +#define QAPI_UTIL_H
 +
 +int qapi_enum_parse(const char *lookup[], const char *buf,
 +int max, int def, Error **errp);
 +
 +#endif
 diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
 index d14b769..2278970 100644
 --- a/qapi/Makefile.objs
 +++ b/qapi/Makefile.objs
 @@ -1,6 +1,6 @@
  util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o
  util-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o
  util-obj-y += string-input-visitor.o string-output-visitor.o
 -
Spurious line removal.

  util-obj-y += opts-visitor.o
  util-obj-y += qmp-event.o
 +util-obj-y += qapi-util.o
 diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c
 new file mode 100644
 index 000..1d8fb96
 --- /dev/null
 +++ b/qapi/qapi-util.c
 @@ -0,0 +1,34 @@
 +/*
 + * QAPI util functions
 + *
 + * Authors:
 + *  Hu Tao   hu...@cn.fujitsu.com
 + *  Peter Lieven p...@kamp.de
 + * 
 + * This work is licensed under the terms of the GNU LGPL, version 2.1 or 
 later.
 + * See the COPYING.LIB file in the top-level directory.
 + *
 + */
 +
 +#include qemu-common.h
 +#include qapi/error.h
 +#include qapi/util.h
 +
 +int qapi_enum_parse(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;
 +}
 -- 
 1.7.9.5
 
 

Reviewed-by: Benoit Canet benoit.ca...@nodalink.com



[Qemu-devel] [PATCHv2 1/3] rename parse_enum_option to qapi_enum_parse and make it public

2014-08-13 Thread Peter Lieven
relaxing the license to LGPLv2+ is intentional.

Suggested-by: Markus Armbruster arm...@redhat.com
Signed-off-by: Hu Tao hu...@cn.fujitsu.com
Signed-off-by: Peter Lieven p...@kamp.de
Reviewed-by: Eric Blake ebl...@redhat.com
---
 blockdev.c  |   30 ++
 include/qapi/util.h |   17 +
 qapi/Makefile.objs  |2 +-
 qapi/qapi-util.c|   34 ++
 4 files changed, 58 insertions(+), 25 deletions(-)
 create mode 100644 include/qapi/util.h
 create mode 100644 qapi/qapi-util.c

diff --git a/blockdev.c b/blockdev.c
index 48bd9a3..9b93cf2 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -39,6 +39,7 @@
 #include qapi/qmp/types.h
 #include qapi-visit.h
 #include qapi/qmp-output-visitor.h
+#include qapi/util.h
 #include sysemu/sysemu.h
 #include block/block_int.h
 #include qmp-commands.h
@@ -274,25 +275,6 @@ 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)) {
@@ -456,11 +438,11 @@ static DriveInfo *blockdev_init(const char *file, QDict 
*bs_opts,
 }
 
 detect_zeroes =
-parse_enum_option(BlockdevDetectZeroesOptions_lookup,
-  qemu_opt_get(opts, detect-zeroes),
-  BLOCKDEV_DETECT_ZEROES_OPTIONS_MAX,
-  BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF,
-  error);
+qapi_enum_parse(BlockdevDetectZeroesOptions_lookup,
+qemu_opt_get(opts, detect-zeroes),
+BLOCKDEV_DETECT_ZEROES_OPTIONS_MAX,
+BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF,
+error);
 if (error) {
 error_propagate(errp, error);
 goto early_err;
diff --git a/include/qapi/util.h b/include/qapi/util.h
new file mode 100644
index 000..de9238b
--- /dev/null
+++ b/include/qapi/util.h
@@ -0,0 +1,17 @@
+/*
+ * QAPI util functions
+ *
+ * Copyright Fujitsu, Inc. 2014
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#ifndef QAPI_UTIL_H
+#define QAPI_UTIL_H
+
+int qapi_enum_parse(const char *lookup[], const char *buf,
+int max, int def, Error **errp);
+
+#endif
diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs
index d14b769..2278970 100644
--- a/qapi/Makefile.objs
+++ b/qapi/Makefile.objs
@@ -1,6 +1,6 @@
 util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o
 util-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o
 util-obj-y += string-input-visitor.o string-output-visitor.o
-
 util-obj-y += opts-visitor.o
 util-obj-y += qmp-event.o
+util-obj-y += qapi-util.o
diff --git a/qapi/qapi-util.c b/qapi/qapi-util.c
new file mode 100644
index 000..1d8fb96
--- /dev/null
+++ b/qapi/qapi-util.c
@@ -0,0 +1,34 @@
+/*
+ * QAPI util functions
+ *
+ * Authors:
+ *  Hu Tao   hu...@cn.fujitsu.com
+ *  Peter Lieven p...@kamp.de
+ * 
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include qemu-common.h
+#include qapi/error.h
+#include qapi/util.h
+
+int qapi_enum_parse(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;
+}
-- 
1.7.9.5