]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: process: Add a hotplug version of qemuProcessPrepareHostBackendChardev
authorPeter Krempa <pkrempa@redhat.com>
Thu, 3 Feb 2022 10:04:56 +0000 (11:04 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 14 Feb 2022 12:14:00 +0000 (13:14 +0100)
When hotplugging a chardev we need the same form of setup for the
character device. Export a version which takes a 'virDomainDeviceDef'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_process.c
src/qemu/qemu_process.h

index 01116312c47e6852adfee5707f6dc3735cfec987..6d6dfe31262da753c495f0fe4bb49c753918113c 100644 (file)
@@ -6936,6 +6936,33 @@ qemuProcessPrepareHostBackendChardev(virDomainObj *vm)
 }
 
 
+int
+qemuProcessPrepareHostBackendChardevHotplug(virDomainObj *vm,
+                                            virDomainDeviceDef *dev)
+{
+    qemuDomainObjPrivate *priv = vm->privateData;
+    g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(priv->driver);
+    struct qemuProcessPrepareHostBackendChardevData data = {
+        .priv = priv,
+        .logManager = NULL,
+        .cfg = cfg,
+        .def = vm->def,
+    };
+    g_autoptr(virLogManager) logManager = NULL;
+
+    if (cfg->stdioLogD) {
+        if (!(logManager = data.logManager = virLogManagerNew(priv->driver->privileged)))
+            return -1;
+    }
+
+    if (qemuDomainDeviceBackendChardevForeachOne(dev,
+                                                 qemuProcessPrepareHostBackendChardevOne,
+                                                 &data) < 0)
+        return -1;
+
+    return 0;
+}
+
 /**
  * qemuProcessPrepareHost:
  * @driver: qemu driver
index f6dd3f51046ce50c36f5e174cda07c8058ec50e2..289cd74eb7838acfe217b0ee36bc9a0c803f971b 100644 (file)
@@ -120,6 +120,12 @@ int qemuProcessOpenVhostVsock(virDomainVsockDef *vsock);
 
 int qemuProcessPrepareHostHostdev(virDomainHostdevDef *hostdev);
 
+
+int qemuProcessPrepareHostBackendChardevHotplug(virDomainObj *vm,
+                                                virDomainDeviceDef *dev)
+    G_GNUC_NO_INLINE;
+
+
 int qemuProcessPrepareHost(virQEMUDriver *driver,
                            virDomainObj *vm,
                            unsigned int flags);