From: Peter Krempa Date: Thu, 3 Feb 2022 10:04:56 +0000 (+0100) Subject: qemu: process: Add a hotplug version of qemuProcessPrepareHostBackendChardev X-Git-Tag: v8.1.0-rc1~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d86bfa631eb4e16b07c4aa10b8c7312b457dcfc2;p=thirdparty%2Flibvirt.git qemu: process: Add a hotplug version of qemuProcessPrepareHostBackendChardev 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 Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 01116312c4..6d6dfe3126 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -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 diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index f6dd3f5104..289cd74eb7 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -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);