diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ee1cf6f9bb..c096e5bb9a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -683,6 +683,33 @@ qemuDomainStorageIDReset(qemuDomainObjPrivate *priv) } +/** + * qemuDomainFDSetIDNew: + * @priv: qemu VM private data object. + * + * Generate a new unique id for a fdset. Note that this is necessary only for + * startup. When running qemu auto-assigns id for added fdset. + */ +unsigned int +qemuDomainFDSetIDNew(qemuDomainObjPrivate *priv) +{ + return priv->fdsetindex++; +} + + +/** + * qemuDomainFDSetIDReset: + * @priv: qemu VM private data object. + * + * Resets the data for the fdset ID generator. + */ +static void +qemuDomainFDSetIDReset(qemuDomainObjPrivate *priv) +{ + priv->fdsetindex = 0; +} + + static void qemuDomainSecretInfoClear(qemuDomainSecretInfo *secinfo, bool keepAlias) @@ -1683,6 +1710,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv) /* reset node name allocator */ qemuDomainStorageIDReset(priv); + qemuDomainFDSetIDReset(priv); + priv->dbusDaemonRunning = false; if (priv->dbusVMStateIds) diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 0a9d312b65..52b500f294 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -207,6 +207,9 @@ struct _qemuDomainObjPrivate { /* counter for generating node names for qemu disks */ unsigned long long nodenameindex; + /* counter for generating IDs of fdsets - only relevant during startup */ + unsigned int fdsetindex; + /* qemuProcessStartCPUs stores the reason for starting vCPUs here for the * RESUME event handler to use it */ virDomainRunningReason runningReason; @@ -969,6 +972,8 @@ char * qemuDomainGetManagedPRSocketPath(qemuDomainObjPrivate *priv); bool qemuDomainDefHasManagedPR(virDomainObj *vm); +unsigned int qemuDomainFDSetIDNew(qemuDomainObjPrivate *priv); + virDomainEventResumedDetailType qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason);