[libvirt] [PATCH 1/7] gic: Introduce virGICVersion enumeration

Andrea Bolognani abologna at redhat.com
Wed Feb 3 20:25:56 UTC 2016


We currently blindly accept any numeric value as a GIC version, even
thought only GIC v2 and GIC v3 actually exist; on the other hand, we
reject "host", which is a perfectly legitimate value for QEMU guests.

This new enumeration contains all GIC versions libvirt is aware of.
---
 src/Makefile.am   |  1 +
 src/util/virgic.c | 33 +++++++++++++++++++++++++++++++++
 src/util/virgic.h | 38 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+)
 create mode 100644 src/util/virgic.c
 create mode 100644 src/util/virgic.h

diff --git a/src/Makefile.am b/src/Makefile.am
index a4aef0f..a3859ae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -113,6 +113,7 @@ UTIL_SOURCES =							\
 		util/virfile.c util/virfile.h			\
 		util/virfirewall.c util/virfirewall.h		\
 		util/virfirewallpriv.h				\
+		util/virgic.c util/virgic.h			\
 		util/virhash.c util/virhash.h			\
 		util/virhashcode.c util/virhashcode.h		\
 		util/virhook.c util/virhook.h			\
diff --git a/src/util/virgic.c b/src/util/virgic.c
new file mode 100644
index 0000000..e7326d6
--- /dev/null
+++ b/src/util/virgic.c
@@ -0,0 +1,33 @@
+/*
+ * virgic.c: ARM Generic Interrupt Controller support
+ *
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Andrea Bolognani <abologna at redhat.com>
+ */
+
+#include <config.h>
+#include "internal.h"
+#include "virgic.h"
+#include "virutil.h"
+
+VIR_ENUM_IMPL(virGICVersion, VIR_GIC_VERSION_LAST,
+              "none",
+              "host",
+              "2",
+              "3",
+);
diff --git a/src/util/virgic.h b/src/util/virgic.h
new file mode 100644
index 0000000..a2ba300
--- /dev/null
+++ b/src/util/virgic.h
@@ -0,0 +1,38 @@
+/*
+ * virgic.h: ARM Generic Interrupt Controller support
+ *
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Author: Andrea Bolognani <abologna at redhat.com>
+ */
+
+#ifndef __VIR_GIC_H__
+# define __VIR_GIC_H__
+
+# include "virutil.h"
+
+typedef enum {
+    VIR_GIC_VERSION_NONE = 0,
+    VIR_GIC_VERSION_HOST,
+    VIR_GIC_VERSION_2,
+    VIR_GIC_VERSION_3,
+    VIR_GIC_VERSION_LAST
+} virGICVersion;
+
+VIR_ENUM_DECL(virGICVersion);
+
+#endif /* __VIR_GIC_H__ */
-- 
2.5.0




More information about the libvir-list mailing list