]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: add machine vmport argument
authorMarc-André Lureau <marcandre.lureau@gmail.com>
Thu, 2 Apr 2015 16:44:08 +0000 (18:44 +0200)
committerMarc-André Lureau <marcandre.lureau@gmail.com>
Mon, 4 May 2015 11:19:38 +0000 (13:19 +0200)
Fill qemu command line vmport argument as required.

src/qemu/qemu_command.c

index 5bfbf62648d8832b988adb304c9189d25d9707f7..952a10efc8610a1dcb4be9156b5f4c85720a2cfb 100644 (file)
@@ -7316,6 +7316,7 @@ qemuBuildMachineArgStr(virCommandPtr cmd,
         obsoleteAccel = true;
     } else {
         virBuffer buf = VIR_BUFFER_INITIALIZER;
+        virTristateSwitch vmport = def->features[VIR_DOMAIN_FEATURE_VMPORT];
 
         virCommandAddArg(cmd, "-machine");
         virBufferAdd(&buf, def->os.machine, -1);
@@ -7333,6 +7334,19 @@ qemuBuildMachineArgStr(virCommandPtr cmd,
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT))
             virBufferAddLit(&buf, ",usb=off");
 
+        if (vmport) {
+            if (!virQEMUCapsSupportsVmport(qemuCaps, def)) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                               _("vmport is not available "
+                                 "with this QEMU binary"));
+                virBufferFreeAndReset(&buf);
+                return -1;
+            }
+
+            virBufferAsprintf(&buf, ",vmport=%s",
+                              virTristateSwitchTypeToString(vmport));
+        }
+
         if (def->mem.dump_core) {
             if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE)) {
                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",