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@xxxxxxxxxx> + */ + +#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@xxxxxxxxxx> + */ + +#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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list