This patch series implements support for multitouch input devices in
libvirt, addressing the multitouch feature request in [1].
Currently, libvirt supports various input devices including mouse, tablet,
and keyboard, but lacks support for multitouch devices. This limitation
prevents users from configuring VMs with proper multitouch capabilities,
which is increasingly important for modern applications and touch-enabled
displays.
This series adds comprehensive multitouch support by:
1. Introducing the necessary data structures and enumerations to represent
multitouch devices in the domain configuration
2. Extending the domain XML schema to allow users to specify multitouch
input devices in their VM definitions
3. Implementing QEMU driver support to properly map multitouch devices to
the virtio-input-host-multitouch QEMU device
4. Adding capability detection to identify when QEMU supports multitouch
devices
5. Updating all relevant enumerations and mappings throughout the codebase
to handle the new device type
6. Including test coverage to validate the XML parsing and QEMU command
line generation
After this series, users will be able to configure multitouch input devices
in their domain XML like: <input type='multitouch' bus='virtio'/>.
[1] https://gitlab.com/libvirt/libvirt/-/issues/808
Julio Faracco (8):
conf: Add multitouch input type enum
conf: Update the type name mapping in the VIR_ENUM_IMPL macro
schemas: Update domain schema to support multitouch
qemu: Add the multitouch case to map to the QEMU virtio device
qemu: Add device properties for multitouch input
qemu: Add the multitouch device capability
Complete remaining enums with multitouch input type
tests: Add multitouch support to virtio-input tests
src/conf/domain_audit.c | 1 +
src/conf/domain_conf.c | 2 ++
src/conf/domain_conf.h | 1 +
src/conf/domain_validate.c | 1 +
src/conf/schemas/domaincommon.rng | 1 +
src/qemu/qemu_capabilities.c | 3 +++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 8 ++++++++
src/qemu/qemu_validate.c | 5 +++++
src/security/security_dac.c | 2 ++
src/security/security_selinux.c | 2 ++
tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml | 1 +
tests/qemuxmlconfdata/virtio-input.x86_64-latest.args | 1 +
tests/qemuxmlconfdata/virtio-input.x86_64-latest.xml | 3 +++
tests/qemuxmlconfdata/virtio-input.xml | 1 +
15 files changed, 33 insertions(+)
--
2.52.0