From: Chen Hanxiao <[email protected]>

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

Signed-off-by: Chen Hanxiao <[email protected]>
---
 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


--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to