]> xenbits.xensource.com Git - libvirt.git/commitdiff
gic: Introduce virGICVersion enumeration
authorAndrea Bolognani <abologna@redhat.com>
Wed, 3 Feb 2016 11:49:51 +0000 (12:49 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Tue, 16 Feb 2016 13:58:58 +0000 (14:58 +0100)
We currently blindly accept any numeric value as a GIC version, even
though 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
src/util/virgic.c [new file with mode: 0644]
src/util/virgic.h [new file with mode: 0644]

index f857e59c12b8b4f79d167db84dfa8fb254306c24..1a2ed7624cc3475a2d028df285499df6ece23025 100644 (file)
@@ -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 (file)
index 0000000..e7326d6
--- /dev/null
@@ -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@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 (file)
index 0000000..a2ba300
--- /dev/null
@@ -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@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__ */