+int qemuDomainAttachDeviceLiveAndConfig(virConnectPtr conn,
> + virDomainObjPtr vm,
> + virQEMUDriverPtr driver,
> + const char *xml,
> + unsigned int flags);
> +
> +int qemuDomainDetachDeviceLiveAndConfig(virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + const char *xml,
> + unsigned int flags);
> +
> #endif /* __QEMU_DRIVER_H__ */
>
This should not be exposed in qemu_driver.h, instead the functions
should be moved to qemu_domain.h if possible, but they now fit there.
If that's not possible, we need to do similar thing as we now have with
qemu_processpriv.h, so this could be called qemu_domainpriv.h I guess
Did you mean qemu_driverpriv.h?
As you predicted, it's not easily done.
qemuDomainAttachDeviceLiveAndConfig() indirectly uses a few functions
from qemu_hotplug. It would be pointless to move them all to
qemu_domain.h, because then we would have to drag the whole
qemu_hotplug.[hc]
along.
What can be done is moving these to qemu_hotplug.h:
- qemuDomainAttachDeviceLive()
- qemuDomainDetachDeviceLive(),
and these to qemu_domain.h:
- qemuDomainAttachDeviceConfig()
- qemuDomainDetachDeviceConfig()
- qemuDomainChrPreInsert()
- qemuDomainChrInsertPreAlloced()
- qemuDomainChrInsertPreAllocCleanup()
- qemuDomainChrInsert()
- qemuDomainChrRemove().
But then where should qemuDomainAttachDeviceLiveAndConfig() and
qemuDomainDetachDeviceLiveAndConfig() be? In that
qemu_domainpriv/qemu_driverpriv.h? And should their definitions
still be in qemu_driver.c, or in a brand new .c file?
Btw qemuDomainUpdateDeviceFlags() is still unsplit and it deserves
the same treatment as the other two *DeviceFlags functions. It will
be done in v3.
Thank you again for such thorough reviews! I really appreciate it.
Tomasz