}
+void
+virQEMUCapsFillDomainLaunchSecurity(virQEMUCaps *qemuCaps,
+ virDomainCapsLaunchSecurity *launchSecurity)
+{
+ launchSecurity->supported = VIR_TRISTATE_BOOL_YES;
+ launchSecurity->sectype.report = true;
+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SEV_GUEST))
+ VIR_DOMAIN_CAPS_ENUM_SET(launchSecurity->sectype, VIR_DOMAIN_LAUNCH_SECURITY_SEV);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SEV_SNP_GUEST))
+ VIR_DOMAIN_CAPS_ENUM_SET(launchSecurity->sectype, VIR_DOMAIN_LAUNCH_SECURITY_SEV_SNP);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST) &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT))
+ VIR_DOMAIN_CAPS_ENUM_SET(launchSecurity->sectype, VIR_DOMAIN_LAUNCH_SECURITY_PV);
+
+ if (launchSecurity->sectype.values == 0) {
+ launchSecurity->supported = VIR_TRISTATE_BOOL_NO;
+ }
+}
+
+
/**
* virQEMUCapsSupportsGICVersion:
* @qemuCaps: QEMU capabilities
virDomainCapsDeviceChannel *channel = &domCaps->channel;
virDomainCapsMemoryBacking *memoryBacking = &domCaps->memoryBacking;
virDomainCapsDeviceCrypto *crypto = &domCaps->crypto;
+ virDomainCapsLaunchSecurity *launchSecurity = &domCaps->launchSecurity;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureHypervCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainDeviceCryptoCaps(qemuCaps, crypto);
+ virQEMUCapsFillDomainLaunchSecurity(qemuCaps, launchSecurity);
return 0;
}
void virQEMUCapsFillDomainDeviceCryptoCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceCrypto *crypto);
+void virQEMUCapsFillDomainLaunchSecurity(virQEMUCaps *qemuCaps,
+ virDomainCapsLaunchSecurity *launchSecurity);
+
bool virQEMUCapsGuestIsNative(virArch host,
virArch guest);
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<s390-pv supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<s390-pv supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<maxESGuests>450</maxESGuests>
</sev>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>sev</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<maxESGuests>450</maxESGuests>
</sev>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>sev</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<s390-pv supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>s390-pv</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<maxESGuests>450</maxESGuests>
</sev>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>sev</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<section node='1' size='262144' unit='KiB'/>
</sections>
</sgx>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<section node='1' size='262144' unit='KiB'/>
</sections>
</sgx>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<section node='1' size='262144' unit='KiB'/>
</sections>
</sgx>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='no'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<s390-pv supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>s390-pv</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<async-teardown supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<s390-pv supported='yes'/>
<sev supported='no'/>
<sgx supported='no'/>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>s390-pv</value>
+ </enum>
+ </launchSecurity>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>
<value>avic</value>
</enum>
</hyperv>
+ <launchSecurity supported='no'/>
</features>
</domainCapabilities>