]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBuildChrDeviceCommandLine: Generate via JSON
authorPeter Krempa <pkrempa@redhat.com>
Tue, 5 Oct 2021 13:24:58 +0000 (15:24 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 12 Oct 2021 09:11:13 +0000 (11:11 +0200)
Build commandlines for character devices via JSON.

For devices using 'VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL' address
type 'qemuBuildDeviceAddressProps' will now generate the address. The
only special property is 'nr'. QEMU declares it as:

  nr=<uint32>            -  (default: 4294967295)

The test fallout is caused by formatting addresses as decimal numbers
instead of hex as described in the commit which added
'qemuBuildDeviceAddressProps'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
27 files changed:
src/qemu/qemu_command.c
src/qemu/qemu_command.h
src/qemu/qemu_hotplug.c
tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-3.1.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-default-cpu-tcg-pseries-4.2.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-pseries-graphics.ppc64-latest.args
tests/qemuxml2argvdata/ppc64-pseries-headless.ppc64-latest.args
tests/qemuxml2argvdata/pseries-basic.args
tests/qemuxml2argvdata/pseries-cpu-compat-power9.args
tests/qemuxml2argvdata/pseries-cpu-compat.args
tests/qemuxml2argvdata/pseries-cpu-exact.args
tests/qemuxml2argvdata/pseries-cpu-le.args
tests/qemuxml2argvdata/pseries-panic-missing.args
tests/qemuxml2argvdata/pseries-panic-no-address.args
tests/qemuxml2argvdata/pseries-serial-native.args
tests/qemuxml2argvdata/pseries-usb-default.args
tests/qemuxml2argvdata/pseries-usb-kbd.args
tests/qemuxml2argvdata/pseries-usb-multi.args
tests/qemuxml2argvdata/pseries-vio-user-assigned.args
tests/qemuxml2argvdata/pseries-vio.args
tests/qemuxml2argvdata/s390-panic-missing.args
tests/qemuxml2argvdata/serial-dev-chardev-iobase.args
tests/qemuxml2argvdata/tpm-emulator-spapr.ppc64-latest.args

index d46278e842603ffda88eeff3728213ee48da7515..ea2c82f51352266458300e398fc13159dbec9f6c 100644 (file)
@@ -752,8 +752,27 @@ qemuBuildDeviceAddressProps(virJSONValue *props,
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
         return qemuBuildDeviceAddresDriveProps(props, domainDef, info);
 
+    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL: {
+        const char *contAlias;
+        g_autofree char *bus = NULL;
+
+        if (!(contAlias = virDomainControllerAliasFind(domainDef,
+                                                       VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL,
+                                                       info->addr.vioserial.controller)))
+            return -1;
+
+        bus = g_strdup_printf("%s.%d", contAlias, info->addr.vioserial.bus);
+
+        if (virJSONValueObjectAdd(props,
+                                  "s:bus", bus,
+                                  "i:nr", info->addr.vioserial.port,
+                                  NULL) < 0)
+            return -1;
+
+        return 0;
+    }
+
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
-    case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
@@ -5673,19 +5692,21 @@ qemuBuildMonitorCommandLine(virLogManager *logManager,
 }
 
 
-static char *
-qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
-                                virDomainChrDef *dev)
+static virJSONValue *
+qemuBuildVirtioSerialPortDevProps(const virDomainDef *def,
+                                  virDomainChrDef *dev)
 {
-    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
-    const char *contAlias;
+    g_autoptr(virJSONValue) props = NULL;
+    const char *driver;
+    const char *targetname = NULL;
+    g_autofree char *chardev = NULL;
 
     switch (dev->deviceType) {
     case VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE:
-        virBufferAddLit(&buf, "virtconsole");
+        driver = "virtconsole";
         break;
     case VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL:
-        virBufferAddLit(&buf, "virtserialport");
+        driver = "virtserialport";
         break;
     default:
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -5702,14 +5723,6 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
             return NULL;
         }
 
-        contAlias = virDomainControllerAliasFind(def, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL,
-                                                 dev->info.addr.vioserial.controller);
-        if (!contAlias)
-            return NULL;
-
-        virBufferAsprintf(&buf, ",bus=%s.%d,nr=%d", contAlias,
-                          dev->info.addr.vioserial.bus,
-                          dev->info.addr.vioserial.port);
     }
 
     if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
@@ -5722,29 +5735,50 @@ qemuBuildVirtioSerialPortDevStr(const virDomainDef *def,
         return NULL;
     }
 
-    virBufferAsprintf(&buf, ",chardev=char%s,id=%s",
-                      dev->info.alias, dev->info.alias);
+    if (virJSONValueObjectCreate(&props,
+                                 "s:driver", driver,
+                                 NULL) < 0)
+        return NULL;
+
+    if (qemuBuildDeviceAddressProps(props, def, &dev->info) < 0)
+        return NULL;
+
+    chardev = g_strdup_printf("char%s", dev->info.alias);
+
     if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
         (dev->source->type == VIR_DOMAIN_CHR_TYPE_SPICEVMC ||
          dev->target.name)) {
-        virBufferAsprintf(&buf, ",name=%s", dev->target.name
-                          ? dev->target.name : "com.redhat.spice.0");
+        if (dev->target.name)
+            targetname = dev->target.name;
+        else
+            targetname = "com.redhat.spice.0";
     }
 
-    return virBufferContentAndReset(&buf);
+    if (virJSONValueObjectAdd(props,
+                              "s:chardev", chardev,
+                              "s:id", dev->info.alias,
+                              "S:name", targetname,
+                              NULL) < 0)
+        return NULL;
+
+    return g_steal_pointer(&props);
 }
 
-static char *
-qemuBuildSclpDevStr(virDomainChrDef *dev)
+
+static virJSONValue *
+qemuBuildSclpDevProps(virDomainChrDef *dev)
 {
-    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
+    g_autoptr(virJSONValue) props = NULL;
+    g_autofree char *chardev = g_strdup_printf("char%s", dev->info.alias);
+    const char *driver = NULL;
+
     if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE) {
         switch (dev->targetType) {
         case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP:
-            virBufferAddLit(&buf, "sclpconsole");
+            driver = "sclpconsole";
             break;
         case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM:
-            virBufferAddLit(&buf, "sclplmconsole");
+            driver = "sclplmconsole";
             break;
         }
     } else {
@@ -5752,10 +5786,15 @@ qemuBuildSclpDevStr(virDomainChrDef *dev)
                        _("Cannot use slcp with devices other than console"));
         return NULL;
     }
-    virBufferAsprintf(&buf, ",chardev=char%s,id=%s",
-                      dev->info.alias, dev->info.alias);
 
-    return virBufferContentAndReset(&buf);
+    if (virJSONValueObjectCreate(&props,
+                                 "s:driver", driver,
+                                 "s:chardev", chardev,
+                                 "s:id", dev->info.alias,
+                                 NULL) < 0)
+        return NULL;
+
+    return g_steal_pointer(&props);
 }
 
 
@@ -9495,12 +9534,14 @@ qemuBuildChrDeviceCommandLine(virCommand *cmd,
                               virDomainChrDef *chr,
                               virQEMUCaps *qemuCaps)
 {
-    g_autofree char *devstr = NULL;
+    g_autoptr(virJSONValue) props = NULL;
 
-    if (qemuBuildChrDeviceStr(&devstr, def, chr, qemuCaps) < 0)
+    if (!(props = qemuBuildChrDeviceProps(def, chr, qemuCaps)))
+        return -1;
+
+    if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
         return -1;
 
-    virCommandAddArgList(cmd, "-device", devstr, NULL);
     return 0;
 }
 
@@ -10950,16 +10991,13 @@ qemuBuildCommandLine(virQEMUDriver *driver,
 }
 
 
-/* This function generates the correct '-device' string for character
- * devices of each architecture.
- */
-static int
-qemuBuildSerialChrDeviceStr(char **deviceStr,
-                            const virDomainDef *def,
-                            virDomainChrDef *serial,
-                            virQEMUCaps *qemuCaps)
+static virJSONValue *
+qemuBuildSerialChrDeviceProps(const virDomainDef *def,
+                              virDomainChrDef *serial,
+                              virQEMUCaps *qemuCaps)
 {
-    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
+    g_autoptr(virJSONValue) props = NULL;
+    g_autofree char *chardev = g_strdup_printf("char%s", serial->info.alias);
     virQEMUCapsFlags caps;
 
     switch ((virDomainChrSerialTargetModel) serial->targetModel) {
@@ -10976,7 +11014,7 @@ qemuBuildSerialChrDeviceStr(char **deviceStr,
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("'%s' is not supported in this QEMU binary"),
                            virDomainChrSerialTargetModelTypeToString(serial->targetModel));
-            return -1;
+            return NULL;
         }
         break;
 
@@ -10990,27 +11028,37 @@ qemuBuildSerialChrDeviceStr(char **deviceStr,
          * branch and we will not have ended up here. */
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("Invalid target model for serial device"));
-        return -1;
+        return NULL;
     }
 
-    virBufferAsprintf(&buf, "%s,chardev=char%s,id=%s",
-                      virDomainChrSerialTargetModelTypeToString(serial->targetModel),
-                      serial->info.alias, serial->info.alias);
+    if (virJSONValueObjectCreate(&props,
+                                 "s:driver", virDomainChrSerialTargetModelTypeToString(serial->targetModel),
+                                 "s:chardev", chardev,
+                                 "s:id", serial->info.alias,
+                                 NULL) < 0)
+        return NULL;
 
-    if (qemuBuildDeviceAddressStr(&buf, def, &serial->info) < 0)
-        return -1;
+    if (qemuBuildDeviceAddressProps(props, def, &serial->info) < 0)
+        return NULL;
 
-    *deviceStr = virBufferContentAndReset(&buf);
-    return 0;
+    return g_steal_pointer(&props);
 }
 
-static int
-qemuBuildParallelChrDeviceStr(char **deviceStr,
-                              virDomainChrDef *chr)
+
+static virJSONValue *
+qemuBuildParallelChrDeviceProps(virDomainChrDef *chr)
 {
-    *deviceStr = g_strdup_printf("isa-parallel,chardev=char%s,id=%s",
-                                 chr->info.alias, chr->info.alias);
-    return 0;
+    g_autoptr(virJSONValue) props = NULL;
+    g_autofree char *chardev = g_strdup_printf("char%s", chr->info.alias);
+
+    if (virJSONValueObjectCreate(&props,
+                                 "s:driver", "isa-parallel",
+                                 "s:chardev", chardev,
+                                 "s:id", chr->info.alias,
+                                 NULL) < 0)
+        return NULL;
+
+    return g_steal_pointer(&props);
 }
 
 
@@ -11049,48 +11097,38 @@ qemuBuildChannelGuestfwdNetdevProps(virDomainChrDef *chr)
 }
 
 
-static int
-qemuBuildChannelChrDeviceStr(char **deviceStr,
-                             const virDomainDef *def,
-                             virDomainChrDef *chr)
+static virJSONValue *
+qemuBuildChannelChrDeviceProps(const virDomainDef *def,
+                               virDomainChrDef *chr)
 {
     switch ((virDomainChrChannelTargetType)chr->targetType) {
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO:
-        if (!(*deviceStr = qemuBuildVirtioSerialPortDevStr(def, chr)))
-            return -1;
-        break;
+        return qemuBuildVirtioSerialPortDevProps(def, chr);
 
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD:
         /* guestfwd is as a netdev handled separately */
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_XEN:
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_NONE:
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_LAST:
-        return -1;
+        break;
     }
 
-    return 0;
+    return NULL;
 }
 
-static int
-qemuBuildConsoleChrDeviceStr(char **deviceStr,
-                             const virDomainDef *def,
-                             virDomainChrDef *chr)
+static virJSONValue *
+qemuBuildConsoleChrDeviceProps(const virDomainDef *def,
+                               virDomainChrDef *chr)
 {
     switch ((virDomainChrConsoleTargetType)chr->targetType) {
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP:
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM:
-        if (!(*deviceStr = qemuBuildSclpDevStr(chr)))
-            return -1;
-        break;
+        return qemuBuildSclpDevProps(chr);
 
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO:
-        if (!(*deviceStr = qemuBuildVirtioSerialPortDevStr(def, chr)))
-            return -1;
-        break;
+        return qemuBuildVirtioSerialPortDevProps(def, chr);
 
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL:
-        break;
-
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE:
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN:
     case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_UML:
@@ -11100,42 +11138,36 @@ qemuBuildConsoleChrDeviceStr(char **deviceStr,
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                        _("unsupported console target type %s"),
                        NULLSTR(virDomainChrConsoleTargetTypeToString(chr->targetType)));
-        return -1;
+        break;
     }
 
-    return 0;
+    return NULL;
 }
 
-int
-qemuBuildChrDeviceStr(char **deviceStr,
-                      const virDomainDef *vmdef,
-                      virDomainChrDef *chr,
-                      virQEMUCaps *qemuCaps)
-{
-    int ret = -1;
 
+virJSONValue *
+qemuBuildChrDeviceProps(const virDomainDef *vmdef,
+                        virDomainChrDef *chr,
+                        virQEMUCaps *qemuCaps)
+{
     switch ((virDomainChrDeviceType)chr->deviceType) {
     case VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL:
-        ret = qemuBuildSerialChrDeviceStr(deviceStr, vmdef, chr, qemuCaps);
-        break;
+        return qemuBuildSerialChrDeviceProps(vmdef, chr, qemuCaps);
 
     case VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL:
-        ret = qemuBuildParallelChrDeviceStr(deviceStr, chr);
-        break;
+        return qemuBuildParallelChrDeviceProps(chr);
 
     case VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL:
-        ret = qemuBuildChannelChrDeviceStr(deviceStr, vmdef, chr);
-        break;
+        return qemuBuildChannelChrDeviceProps(vmdef, chr);
 
     case VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE:
-        ret = qemuBuildConsoleChrDeviceStr(deviceStr, vmdef, chr);
-        break;
+        return qemuBuildConsoleChrDeviceProps(vmdef, chr);
 
     case VIR_DOMAIN_CHR_DEVICE_TYPE_LAST:
-        return ret;
+        break;
     }
 
-    return ret;
+    return NULL;
 }
 
 
index cf57fc9a418134ddce3b84236bbfdab2d1efed04..65e896b634983a9f8c9dea6bbc03d1430ae9f429 100644 (file)
@@ -79,12 +79,10 @@ int qemuBuildTLSx509BackendProps(const char *tlspath,
 int
 qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) G_GNUC_NO_INLINE;
 
-/* Generate '-device' string for chardev device */
-int
-qemuBuildChrDeviceStr(char **deviceStr,
-                      const virDomainDef *vmdef,
-                      virDomainChrDef *chr,
-                      virQEMUCaps *qemuCaps);
+virJSONValue *
+qemuBuildChrDeviceProps(const virDomainDef *vmdef,
+                        virDomainChrDef *chr,
+                        virQEMUCaps *qemuCaps);
 
 virJSONValue *
 qemuBuildChannelGuestfwdNetdevProps(virDomainChrDef *chr);
index f55cedc784cbb0bb00c8a85f64d84b1a731aa0a6..c7da38b49b265f5a294461c189541a8fbf1691e7 100644 (file)
@@ -2181,7 +2181,7 @@ int qemuDomainAttachChrDevice(virQEMUDriver *driver,
     qemuDomainObjPrivate *priv = vm->privateData;
     virErrorPtr orig_err;
     virDomainDef *vmdef = vm->def;
-    g_autofree char *devstr = NULL;
+    g_autoptr(virJSONValue) devprops = NULL;
     g_autoptr(virJSONValue) netdevprops = NULL;
     virDomainChrSourceDef *dev = chr->source;
     g_autofree char *charAlias = NULL;
@@ -2224,7 +2224,7 @@ int qemuDomainAttachChrDevice(virQEMUDriver *driver,
         if (!(netdevprops = qemuBuildChannelGuestfwdNetdevProps(chr)))
             goto cleanup;
     } else {
-        if (qemuBuildChrDeviceStr(&devstr, vmdef, chr, priv->qemuCaps) < 0)
+        if (!(devprops = qemuBuildChrDeviceProps(vmdef, chr, priv->qemuCaps)))
             goto cleanup;
     }
 
@@ -2251,8 +2251,8 @@ int qemuDomainAttachChrDevice(virQEMUDriver *driver,
             goto exit_monitor;
     }
 
-    if (devstr) {
-        if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
+    if (devprops) {
+        if (qemuMonitorAddDeviceProps(priv->mon, &devprops) < 0)
             goto exit_monitor;
     }
 
index dde5d44d458f20ac9d920bd244956a201cadebcd..8a6f0a94fb3d73d07cba9b401e5edf166e8d4f94 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index a4aaea7571c0085f84ca9afef8a54e9529763dc6..2362c5a0576a9e9bed0f30bc253815ef975c7ddc 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index a8b22d3e48addccb691c42a6d8727f4e988492ba..ed62c92c12eb4e45144bd179c13b34ddf4c9250d 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index 576f97261bc1722922ca38b8d828368d4e1a1bfa..5b9d07c46e02f06fc5c3efa42a7a023ad94df097 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index e3ca4a84650c82f38cdb44c1f7942726272902ce..7324e69410d76a81dfcfc53e19047f3c45d04e73 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index 1762e8f5f534fdc6348ae377c0af9f7db6a00aed..6591810bf88fcde708176a6992872c9d328ffc91 100644 (file)
@@ -30,7 +30,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
 -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -audiodev id=audio1,driver=none \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
index 2d3be80be39d8610f410f5d8ffaeca75bd9cabf7..61a9c458d470a730f72f608173e67829ff9fa6da 100644 (file)
@@ -32,7 +32,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -netdev user,id=hostnet0 \
 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:a2:44:92,bus=pci.0,addr=0x1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \
 -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
 -device usb-tablet,id=input0,bus=usb.0,port=1 \
index e46978c0d2d0f74a2363dcc8114aab3a664fc876..819ad483a4afb26aa81dc7d6380cbf323591fe1c 100644 (file)
@@ -33,7 +33,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \
 -netdev user,id=hostnet0 \
 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,bus=pci.0,addr=0x1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \
 -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
 -audiodev id=audio1,driver=none \
index 241850399fc12a5fab60819f261ed7ab796ccfad..ebb289fe310b016f45d71300397efcd96c53e4a3 100644 (file)
@@ -26,5 +26,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 29dd9bc29e949a728de93c0416128116b7f3ce8a..abc34215651756deb92ec0ac9206db964de759a2 100644 (file)
@@ -27,5 +27,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index c54088c505afe001677333e0c786a8d22a8a913b..18dbc62dc55ea018623b07469abd2c56d6c0d3ab 100644 (file)
@@ -27,5 +27,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 1d11f5fa935ec6f0d8f36ffafb75c7ffd686053a..7ee7ee4b348a35239de1032bde9cb0513ec28fce 100644 (file)
@@ -27,5 +27,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 1247f3af8e1716ec8103e838b8ca06f9e2ef2971..1325a0edd230eb6de995e2a284ee9b55a0bfcc30 100644 (file)
@@ -26,5 +26,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 241850399fc12a5fab60819f261ed7ab796ccfad..ebb289fe310b016f45d71300397efcd96c53e4a3 100644 (file)
@@ -26,5 +26,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 241850399fc12a5fab60819f261ed7ab796ccfad..ebb289fe310b016f45d71300397efcd96c53e4a3 100644 (file)
@@ -26,5 +26,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -usb \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 9c2e3c156a1dd1627be2799ec2dcb84e51c20616..1c89689f9f0fbda22807b76d73fd54dc38794e38 100644 (file)
@@ -25,5 +25,5 @@ QEMU_AUDIO_DRV=none \
 -no-shutdown \
 -boot strict=on \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index b3b57320c52844622227bafc2953e32137f40c86..dadab3fe1036ed7f59b31f81a6f954612b777693 100644 (file)
@@ -26,5 +26,5 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -device pci-ohci,id=usb,bus=pci.0,addr=0x1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index 7e0623eef824c01c38868d532af473497e4e16ce..a650420cff38194ab9a3ba0ffb121717e554c2db 100644 (file)
@@ -26,6 +26,6 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -device pci-ohci,id=usb,bus=pci.0,addr=0x1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -device usb-kbd,id=input0,bus=usb.0,port=1 \
 -msg timestamp=on
index 2d4ef8483821140f6e61f2e79a1e3daaf5e957a6..34651b8ec4079131877fa5fb28598f742b2e996f 100644 (file)
@@ -27,5 +27,5 @@ QEMU_AUDIO_DRV=none \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1 \
 -device pci-ohci,id=usb1,bus=pci.0,addr=0x2 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -msg timestamp=on
index dfc3ad0d1bbba6b18e1d2a0bde7757fc5dafb6af..80ded186922717f4946f29217acaa23a5d9e52b3 100644 (file)
@@ -30,7 +30,7 @@ QEMU_AUDIO_DRV=none \
 -drive file=/tmp/scsidisk.img,format=raw,if=none,id=drive-scsi1-0-0-0 \
 -device scsi-hd,bus=scsi1.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi1-0-0-0,id=scsi1-0-0-0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x20000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=536870912 \
 -chardev pty,id=charserial1 \
--device spapr-vty,chardev=charserial1,id=serial1,reg=0x30001000 \
+-device spapr-vty,chardev=charserial1,id=serial1,reg=805310464 \
 -msg timestamp=on
index a8e18fae5a9d319e1d166792dfc3d57487c2671b..e266d4c01baa38371fb117ce80868e0afb40e1f8 100644 (file)
@@ -30,7 +30,7 @@ QEMU_AUDIO_DRV=none \
 -drive file=/tmp/scsidisk.img,format=raw,if=none,id=drive-scsi1-0-0-0 \
 -device scsi-hd,bus=scsi1.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi1-0-0-0,id=scsi1-0-0-0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -chardev pty,id=charserial1 \
--device spapr-vty,chardev=charserial1,id=serial1,reg=0x30001000 \
+-device spapr-vty,chardev=charserial1,id=serial1,reg=805310464 \
 -msg timestamp=on
index be0873ced9998bdce020bf585bafbc05666856ae..a1c1731f0ccbfdb32bb5f6817c414b5ee6644d3f 100644 (file)
@@ -26,6 +26,6 @@ QEMU_AUDIO_DRV=none \
 -boot strict=on \
 -device virtio-serial-ccw,id=virtio-serial0,devno=fe.0.0000 \
 -chardev pty,id=charconsole0 \
--device virtconsole,chardev=charconsole0,id=console0 \
+-device virtconsole,devno=fe.0.0001,chardev=charconsole0,id=console0 \
 -device virtio-balloon-ccw,id=balloon0,devno=fe.0.0002 \
 -msg timestamp=on
index ecaa342a26ec2d8521e16a476d5449ac859a6a1a..27de77305e7b40a2e749062f293a9948f64acbb8 100644 (file)
@@ -29,6 +29,6 @@ QEMU_AUDIO_DRV=none \
 -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
 -chardev tty,id=charserial0,path=/dev/ttyS2 \
--device isa-serial,chardev=charserial0,id=serial0,iobase=0x3f8,irq=0x4 \
+-device isa-serial,chardev=charserial0,id=serial0,iobase=1016,irq=4 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -msg timestamp=on
index 04d632c091047f46fb8abad23e40df7eb2f813ed..c8dc4c74fe991b3b7ce9a44d1c53733c1a2145d8 100644 (file)
@@ -32,9 +32,9 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-TPM-VM/.config \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
 -device scsi-hd,bus=scsi1.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi1-0-0-0,drive=libvirt-1-format,id=scsi1-0-0-0,bootindex=1 \
 -chardev pty,id=charserial0 \
--device spapr-vty,chardev=charserial0,id=serial0,reg=0x30000000 \
+-device spapr-vty,chardev=charserial0,id=serial0,reg=805306368 \
 -chardev pty,id=charserial1 \
--device spapr-vty,chardev=charserial1,id=serial1,reg=0x30001000 \
+-device spapr-vty,chardev=charserial1,id=serial1,reg=805310464 \
 -tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
 -chardev socket,id=chrtpm,path=/dev/test \
 -device tpm-spapr,tpmdev=tpm-tpm0,id=tpm0,reg=0x00005000 \