conf: domain: Add hyperv passthrough mode

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Tim Wiederhake 2021-11-25 19:57:49 +01:00
parent da9f798445
commit 9c2afd17fd
3 changed files with 18 additions and 0 deletions

View File

@ -141,6 +141,7 @@ VIR_ENUM_IMPL(virDomainHyperVMode,
VIR_DOMAIN_HYPERV_MODE_LAST,
"none",
"custom",
"passthrough",
);
VIR_ENUM_IMPL(virDomainBoot,

View File

@ -158,6 +158,7 @@ VIR_ENUM_DECL(virDomainOS);
typedef enum {
VIR_DOMAIN_HYPERV_MODE_NONE = 0,
VIR_DOMAIN_HYPERV_MODE_CUSTOM,
VIR_DOMAIN_HYPERV_MODE_PASSTHROUGH,
VIR_DOMAIN_HYPERV_MODE_LAST
} virDomainHyperVMode;

View File

@ -6713,6 +6713,22 @@ qemuBuildCpuCommandLine(virCommand *cmd,
}
if (def->features[VIR_DOMAIN_FEATURE_HYPERV] != VIR_DOMAIN_HYPERV_MODE_NONE) {
switch ((virDomainHyperVMode) def->features[VIR_DOMAIN_FEATURE_HYPERV]) {
case VIR_DOMAIN_HYPERV_MODE_CUSTOM:
break;
case VIR_DOMAIN_HYPERV_MODE_PASSTHROUGH:
virBufferAsprintf(&buf, ",hv-%s=on", "passthrough");
break;
case VIR_DOMAIN_HYPERV_MODE_NONE:
case VIR_DOMAIN_HYPERV_MODE_LAST:
default:
virReportEnumRangeError(virDomainHyperVMode,
def->features[VIR_DOMAIN_FEATURE_HYPERV]);
return -1;
}
for (i = 0; i < VIR_DOMAIN_HYPERV_LAST; i++) {
switch ((virDomainHyperv) i) {
case VIR_DOMAIN_HYPERV_RELAXED: