/* Generated by ./xlat/gen.sh from ./xlat/kvm_cpuid_flags.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#ifndef BIT
# define BIT(nr_)	(1UL << (nr_))
#endif
#if defined(KVM_CPUID_FLAG_SIGNIFCANT_INDEX) || (defined(HAVE_DECL_KVM_CPUID_FLAG_SIGNIFCANT_INDEX) && HAVE_DECL_KVM_CPUID_FLAG_SIGNIFCANT_INDEX)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KVM_CPUID_FLAG_SIGNIFCANT_INDEX) == ((1 << 0)), "KVM_CPUID_FLAG_SIGNIFCANT_INDEX != (1 << 0)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KVM_CPUID_FLAG_SIGNIFCANT_INDEX (1 << 0)
#endif
#if defined(KVM_CPUID_FLAG_STATEFUL_FUNC) || (defined(HAVE_DECL_KVM_CPUID_FLAG_STATEFUL_FUNC) && HAVE_DECL_KVM_CPUID_FLAG_STATEFUL_FUNC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KVM_CPUID_FLAG_STATEFUL_FUNC) == ((1 << 1)), "KVM_CPUID_FLAG_STATEFUL_FUNC != (1 << 1)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KVM_CPUID_FLAG_STATEFUL_FUNC (1 << 1)
#endif
#if defined(KVM_CPUID_FLAG_STATE_READ_NEXT) || (defined(HAVE_DECL_KVM_CPUID_FLAG_STATE_READ_NEXT) && HAVE_DECL_KVM_CPUID_FLAG_STATE_READ_NEXT)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KVM_CPUID_FLAG_STATE_READ_NEXT) == ((1 << 2)), "KVM_CPUID_FLAG_STATE_READ_NEXT != (1 << 2)");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KVM_CPUID_FLAG_STATE_READ_NEXT (1 << 2)
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat kvm_cpuid_flags in mpers mode

# else

static
const struct xlat kvm_cpuid_flags[] = {
#ifndef BIT
/*
* Workaround a bug in kernel headers fixed by linux commit v4.7-rc1~32^2~42.
*/
# define BIT(nr_)	(1UL << (nr_))
#endif

 XLAT(KVM_CPUID_FLAG_SIGNIFCANT_INDEX),
 XLAT(KVM_CPUID_FLAG_STATEFUL_FUNC),
 XLAT(KVM_CPUID_FLAG_STATE_READ_NEXT),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
