i386/kvm: convert hyperv enlightenments properties from bools to bits

Representing Hyper-V properties as bits will allow us to check features
and dependencies between them in a natural way.

Suggested-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20190517141924.19024-2-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Vitaly Kuznetsov 2019-05-17 16:19:16 +02:00 committed by Paolo Bonzini
parent 6f38dca615
commit 2d384d7c83
6 changed files with 91 additions and 80 deletions

View file

@ -5853,21 +5853,37 @@ static Property x86_cpu_properties[] = {
#endif
DEFINE_PROP_INT32("node-id", X86CPU, node_id, CPU_UNSET_NUMA_NODE_ID),
DEFINE_PROP_BOOL("pmu", X86CPU, enable_pmu, false),
{ .name = "hv-spinlocks", .info = &qdev_prop_spinlocks },
DEFINE_PROP_BOOL("hv-relaxed", X86CPU, hyperv_relaxed_timing, false),
DEFINE_PROP_BOOL("hv-vapic", X86CPU, hyperv_vapic, false),
DEFINE_PROP_BOOL("hv-time", X86CPU, hyperv_time, false),
DEFINE_PROP_BOOL("hv-crash", X86CPU, hyperv_crash, false),
DEFINE_PROP_BOOL("hv-reset", X86CPU, hyperv_reset, false),
DEFINE_PROP_BOOL("hv-vpindex", X86CPU, hyperv_vpindex, false),
DEFINE_PROP_BOOL("hv-runtime", X86CPU, hyperv_runtime, false),
DEFINE_PROP_BOOL("hv-synic", X86CPU, hyperv_synic, false),
DEFINE_PROP_BOOL("hv-stimer", X86CPU, hyperv_stimer, false),
DEFINE_PROP_BOOL("hv-frequencies", X86CPU, hyperv_frequencies, false),
DEFINE_PROP_BOOL("hv-reenlightenment", X86CPU, hyperv_reenlightenment, false),
DEFINE_PROP_BOOL("hv-tlbflush", X86CPU, hyperv_tlbflush, false),
DEFINE_PROP_BOOL("hv-evmcs", X86CPU, hyperv_evmcs, false),
DEFINE_PROP_BOOL("hv-ipi", X86CPU, hyperv_ipi, false),
DEFINE_PROP_BIT64("hv-relaxed", X86CPU, hyperv_features,
HYPERV_FEAT_RELAXED, 0),
DEFINE_PROP_BIT64("hv-vapic", X86CPU, hyperv_features,
HYPERV_FEAT_VAPIC, 0),
DEFINE_PROP_BIT64("hv-time", X86CPU, hyperv_features,
HYPERV_FEAT_TIME, 0),
DEFINE_PROP_BIT64("hv-crash", X86CPU, hyperv_features,
HYPERV_FEAT_CRASH, 0),
DEFINE_PROP_BIT64("hv-reset", X86CPU, hyperv_features,
HYPERV_FEAT_RESET, 0),
DEFINE_PROP_BIT64("hv-vpindex", X86CPU, hyperv_features,
HYPERV_FEAT_VPINDEX, 0),
DEFINE_PROP_BIT64("hv-runtime", X86CPU, hyperv_features,
HYPERV_FEAT_RUNTIME, 0),
DEFINE_PROP_BIT64("hv-synic", X86CPU, hyperv_features,
HYPERV_FEAT_SYNIC, 0),
DEFINE_PROP_BIT64("hv-stimer", X86CPU, hyperv_features,
HYPERV_FEAT_STIMER, 0),
DEFINE_PROP_BIT64("hv-frequencies", X86CPU, hyperv_features,
HYPERV_FEAT_FREQUENCIES, 0),
DEFINE_PROP_BIT64("hv-reenlightenment", X86CPU, hyperv_features,
HYPERV_FEAT_REENLIGHTENMENT, 0),
DEFINE_PROP_BIT64("hv-tlbflush", X86CPU, hyperv_features,
HYPERV_FEAT_TLBFLUSH, 0),
DEFINE_PROP_BIT64("hv-evmcs", X86CPU, hyperv_features,
HYPERV_FEAT_EVMCS, 0),
DEFINE_PROP_BIT64("hv-ipi", X86CPU, hyperv_features,
HYPERV_FEAT_IPI, 0),
DEFINE_PROP_BOOL("check", X86CPU, check_cpuid, true),
DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
DEFINE_PROP_BOOL("kvm", X86CPU, expose_kvm, true),