}
+void
+virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsMemoryBacking *memoryBacking)
+{
+ memoryBacking->supported = VIR_TRISTATE_BOOL_YES;
+ memoryBacking->sourceType.report = true;
+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_MEMFD))
+ VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
+ VIR_DOMAIN_MEMORY_SOURCE_MEMFD);
+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE))
+ VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
+ VIR_DOMAIN_MEMORY_SOURCE_FILE);
+
+ VIR_DOMAIN_CAPS_ENUM_SET(memoryBacking->sourceType,
+ VIR_DOMAIN_MEMORY_SOURCE_ANONYMOUS);
+}
+
+
static void
virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCaps *qemuCaps,
const char *machine,
virDomainCapsDeviceVideo *video = &domCaps->video;
virDomainCapsDeviceRNG *rng = &domCaps->rng;
virDomainCapsDeviceFilesystem *filesystem = &domCaps->filesystem;
+ virDomainCapsMemoryBacking *memoryBacking = &domCaps->memoryBacking;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
return -1;
virQEMUCapsFillDomainCPUCaps(qemuCaps, hostarch, domCaps);
+ virQEMUCapsFillDomainMemoryBackingCaps(qemuCaps, memoryBacking);
virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps, domCaps->machine, disk);
virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, graphics);
virQEMUCapsFillDomainDeviceVideoCaps(qemuCaps, video);
virFirmware **firmwares,
size_t nfirmwares);
+void virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps,
+ virDomainCapsMemoryBacking *memoryBacking);
+
void virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceGraphics *dev);
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>z990.3-base</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>z990.3-base</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>z990.3-base</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>z990.3-base</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa270</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='no'>qemu</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa262</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa262</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='no'/>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa262</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>pxa262</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='unknown'>POWER7</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>qemu</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>qemu</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<model usable='yes'>486</model>
</mode>
</cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>