From: Chen Hanxiao <chenhanxiao(a)gmail.com>
Introduce macro virCheckControllerGoto.
Jumps to a label if unsupported controller type were
passed to it.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)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