qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] target-arm: Provide mechanism for getting KVM con


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC] target-arm: Provide mechanism for getting KVM constants even if not CONFIG_KVM
Date: Fri, 15 Nov 2013 11:54:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9

Il 14/11/2013 20:07, Peter Maydell ha scritto:
> diff --git a/target-arm/kvm-consts.h b/target-arm/kvm-consts.h
> new file mode 100644
> index 0000000..42ffb50
> --- /dev/null
> +++ b/target-arm/kvm-consts.h
> @@ -0,0 +1,34 @@
> +/*
> + * Provide versions of KVM constant defines that can be used even
> + * when CONFIG_KVM is not set and we don't have access to the
> + * KVM headers. If CONFIG_KVM is set, we do a compile-time check
> + * that we haven't got out of sync somehow.
> + */
> +#ifndef ARM_KVM_CONSTS_H
> +#define ARM_KVM_CONSTS_H
> +
> +#ifdef CONFIG_KVM
> +#include "qemu/compiler.h"
> +#include <linux/kvm.h>
> +
> +#define MISMATCH_CHECK(X, Y) QEMU_BUILD_BUG_ON(X != Y)
> +
> +#else
> +#define MISMATCH_CHECK(X, Y)
> +#endif
> +
> +#define CP_REG_SIZE_SHIFT 52
> +#define CP_REG_SIZE_MASK       0x00f0000000000000ULL
> +#define CP_REG_SIZE_U32        0x0020000000000000ULL
> +#define CP_REG_SIZE_U64        0x0030000000000000ULL
> +#define CP_REG_ARM             0x4000000000000000ULL
> +
> +MISMATCH_CHECK(CP_REG_SIZE_SHIFT, KVM_REG_SIZE_SHIFT)
> +MISMATCH_CHECK(CP_REG_SIZE_MASK, KVM_REG_SIZE_MASK)
> +MISMATCH_CHECK(CP_REG_SIZE_U32, KVM_REG_SIZE_U32)
> +MISMATCH_CHECK(CP_REG_SIZE_U64, KVM_REG_SIZE_U64)
> +MISMATCH_CHECK(CP_REG_ARM, KVM_REG_ARM)
> +
> +#undef MISMATCH_CHECK
> +
> +#endif
> 

It's okay.  There are indeed advantages to putting this together with
the definitions, instead of splitting it between target-arm/cpu.h and
target-arm/kvm.c.

The patch is missing the removal of the check from kvm.c though.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]