[libvirt] [PATCH v1 2/3] virConfType: switch to VIR_ENUM_{DECL, IMPL}

Michal Privoznik mprivozn at redhat.com
Tue Dec 9 15:52:15 UTC 2014


There's no need to implement ToString() function like we do if we
can use our shiny macros.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 daemon/libvirtd-config.c         |  4 ++--
 src/libvirt_private.syms         |  2 ++
 src/locking/lock_daemon_config.c |  4 ++--
 src/util/virconf.c               |  6 ++++++
 src/util/virconf.h               | 28 +++++++++-------------------
 5 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/daemon/libvirtd-config.c b/daemon/libvirtd-config.c
index c31ef16..929dd1a 100644
--- a/daemon/libvirtd-config.c
+++ b/daemon/libvirtd-config.c
@@ -123,8 +123,8 @@ checkType(virConfValuePtr p, const char *filename,
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("remoteReadConfigFile: %s: %s: invalid type:"
                          " got %s; expected %s"), filename, key,
-                       virConfTypeName(p->type),
-                       virConfTypeName(required_type));
+                       virConfTypeToString(p->type),
+                       virConfTypeToString(required_type));
         return -1;
     }
     return 0;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 6df2784..57cf4d3 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1211,6 +1211,8 @@ virConfNew;
 virConfReadFile;
 virConfReadMem;
 virConfSetValue;
+virConfTypeFromString;
+virConfTypeToString;
 virConfWalk;
 virConfWriteFile;
 virConfWriteMem;
diff --git a/src/locking/lock_daemon_config.c b/src/locking/lock_daemon_config.c
index 62b8b02..abe6aba 100644
--- a/src/locking/lock_daemon_config.c
+++ b/src/locking/lock_daemon_config.c
@@ -47,8 +47,8 @@ checkType(virConfValuePtr p, const char *filename,
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("remoteReadConfigFile: %s: %s: invalid type:"
                          " got %s; expected %s"), filename, key,
-                       virConfTypeName(p->type),
-                       virConfTypeName(required_type));
+                       virConfTypeToString(p->type),
+                       virConfTypeToString(required_type));
         return -1;
     }
     return 0;
diff --git a/src/util/virconf.c b/src/util/virconf.c
index 74e695a..5b4b4c3 100644
--- a/src/util/virconf.c
+++ b/src/util/virconf.c
@@ -80,6 +80,12 @@ struct _virConfParserCtxt {
  *									*
  ************************************************************************/
 
+VIR_ENUM_IMPL(virConf, VIR_CONF_LAST,
+              "*unexpected*",
+              "long",
+              "string",
+              "list");
+
 typedef struct _virConfEntry virConfEntry;
 typedef virConfEntry *virConfEntryPtr;
 
diff --git a/src/util/virconf.h b/src/util/virconf.h
index 2a6b050..6176d43 100644
--- a/src/util/virconf.h
+++ b/src/util/virconf.h
@@ -23,6 +23,8 @@
 #ifndef __VIR_CONF_H__
 # define __VIR_CONF_H__
 
+# include "virutil.h"
+
 /**
  * virConfType:
  * one of the possible type for a value from the configuration file
@@ -30,12 +32,15 @@
  * TODO: we probably need a float too.
  */
 typedef enum {
-    VIR_CONF_NONE = 0,		/* undefined */
-    VIR_CONF_LONG = 1,		/* a long int */
-    VIR_CONF_STRING = 2,	/* a string */
-    VIR_CONF_LIST = 3		/* a list */
+    VIR_CONF_NONE = 0,      /* undefined */
+    VIR_CONF_LONG,          /* a long int */
+    VIR_CONF_STRING,        /* a string */
+    VIR_CONF_LIST,          /* a list */
+    VIR_CONF_LAST,          /* sentinel */
 } virConfType;
 
+VIR_ENUM_DECL(virConf)
+
 typedef enum {
     VIR_CONF_FLAG_VMX_FORMAT = 1,  /* allow ':', '.' and '-' in names for compatibility
                                       with VMware VMX configuration file, but restrict
@@ -45,21 +50,6 @@ typedef enum {
                                       to string only and don't expect quotes for values */
 } virConfFlags;
 
-static inline const char *
-virConfTypeName (virConfType t)
-{
-    switch (t) {
-    case VIR_CONF_LONG:
-        return "long";
-    case VIR_CONF_STRING:
-        return "string";
-    case VIR_CONF_LIST:
-        return "list";
-    default:
-        return "*unexpected*";
-    }
-}
-
 /**
  * virConfValue:
  * a value from the configuration file
-- 
2.0.4




More information about the libvir-list mailing list