[libvirt] [PATCH 1/4] internal: introduce macro virCheckControllerGoto

Chen Hanxiao chen_han_xiao at 126.com
Fri Nov 4 03:09:17 UTC 2016


From: Chen Hanxiao <chenhanxiao at gmail.com>

Introduce macro virCheckControllerGoto.
Jumps to a label if unsupported controller type were
passed to it.

Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
---
 src/internal.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/internal.h b/src/internal.h
index d8cc5ad..a34f43e 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -362,6 +362,25 @@
         }                                                               \
     } while (0)
 
+/**
+ * virCheckControllerGoto:
+ * @Cgp: virCgroupPtr pointer
+ * @CgpCtr: cgroup controller type enum
+ * @label: label to jump to on error
+ *
+ * Returns nothing. Jumps to a label if unsupported controller type were
+ * passed to it.
+ */
+# define virCheckControllerGoto(Cgp, CgpCtr, label)                    \
+    do {                                                               \
+        if (!virCgroupHasController(Cgp, CgpCtr)) {                    \
+            virReportError(VIR_ERR_OPERATION_INVALID,                  \
+                            _("cgroup %s controller is not mounted"),  \
+                           virCgroupControllerTypeToString(CgpCtr));   \
+            goto label;                                                \
+        }                                                              \
+    } while (0)
+
 /* Macros to help dealing with mutually exclusive flags. */
 
 /**
-- 
1.8.3.1





More information about the libvir-list mailing list