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

John Ferlan jferlan at redhat.com
Sun Feb 7 14:28:40 UTC 2016



On 02/03/2016 03:25 PM, Andrea Bolognani wrote:
> 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

s/thought/though

> 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
> 

I agree with Cole - does seem to be overkill for it's own module...

Just a thought.... If 'host' were to become the default, then 'none' is
unnecessary especially since you have a tristate on related to features
for whether <gic> is provided....

That way the version attribute could be optional and whatever is
available on the host "takes over" unless they provide a specific version.


John

> 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__ */
> 




More information about the libvir-list mailing list