2023-07-10 13:05:10 +03:00
|
|
|
system_virtio_ss = ss.source_set()
|
|
|
|
system_virtio_ss.add(files('virtio-bus.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pci.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VIRTIO_MMIO', if_true: files('virtio-mmio.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-crypto.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('vhost-vsock-common.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-iommu.c'))
|
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-dev.c'))
|
2019-08-15 16:23:36 +03:00
|
|
|
|
2022-12-13 14:17:03 +03:00
|
|
|
specific_virtio_ss = ss.source_set()
|
|
|
|
specific_virtio_ss.add(files('virtio.c'))
|
2022-12-13 14:17:07 +03:00
|
|
|
specific_virtio_ss.add(files('virtio-config-io.c', 'virtio-qmp.c'))
|
2022-04-20 18:34:06 +03:00
|
|
|
|
|
|
|
if have_vhost
|
2023-07-10 13:05:10 +03:00
|
|
|
system_virtio_ss.add(files('vhost.c'))
|
2023-05-24 12:37:44 +03:00
|
|
|
specific_virtio_ss.add(files('vhost-backend.c', 'vhost-iova-tree.c'))
|
2022-04-20 18:34:06 +03:00
|
|
|
if have_vhost_user
|
2023-07-10 18:35:09 +03:00
|
|
|
# fixme - this really should be generic
|
2022-12-13 14:17:03 +03:00
|
|
|
specific_virtio_ss.add(files('vhost-user.c'))
|
2024-01-05 00:09:35 +03:00
|
|
|
system_virtio_ss.add(files('vhost-user-base.c'))
|
2024-01-05 00:09:37 +03:00
|
|
|
|
|
|
|
# MMIO Stubs
|
2023-07-10 18:35:09 +03:00
|
|
|
system_virtio_ss.add(files('vhost-user-device.c'))
|
2024-01-05 00:09:38 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_USER_GPIO', if_true: files('vhost-user-gpio.c'))
|
2024-01-05 00:09:39 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_USER_I2C', if_true: files('vhost-user-i2c.c'))
|
2024-01-05 00:09:37 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_USER_RNG', if_true: files('vhost-user-rng.c'))
|
hw/virtio: add vhost-user-snd and vhost-user-snd-pci devices
Tested with rust-vmm vhost-user-sound daemon:
RUST_LOG=trace cargo run --bin vhost-user-sound -- --socket /tmp/snd.sock --backend null
Invocation:
qemu-system-x86_64 \
-qmp unix:./qmp-sock,server,wait=off \
-m 4096 \
-numa node,memdev=mem \
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
-D qemu.log \
-d guest_errors,trace:\*snd\*,trace:\*sound\*,trace:\*vhost\* \
-chardev socket,id=vsnd,path=/tmp/snd.sock \
-device vhost-user-snd-pci,chardev=vsnd,id=snd \
/path/to/disk
[AJB: imported from https://github.com/epilys/qemu-virtio-snd/commit/54ae1cdd15fef2d88e9e387a175f099a38c636f4.patch]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-Id: <20240104210945.1223134-7-alex.bennee@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2024-01-05 00:09:40 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_USER_SND', if_true: files('vhost-user-snd.c'))
|
2024-01-05 00:09:44 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VHOST_USER_INPUT', if_true: files('vhost-user-input.c'))
|
2024-01-05 00:09:37 +03:00
|
|
|
|
|
|
|
# PCI Stubs
|
2023-07-10 18:35:09 +03:00
|
|
|
system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('vhost-user-device-pci.c'))
|
2024-01-05 00:09:38 +03:00
|
|
|
system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_GPIO'],
|
|
|
|
if_true: files('vhost-user-gpio-pci.c'))
|
2024-01-05 00:09:39 +03:00
|
|
|
system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_I2C'],
|
|
|
|
if_true: files('vhost-user-i2c-pci.c'))
|
2024-01-05 00:09:37 +03:00
|
|
|
system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_RNG'],
|
|
|
|
if_true: files('vhost-user-rng-pci.c'))
|
hw/virtio: add vhost-user-snd and vhost-user-snd-pci devices
Tested with rust-vmm vhost-user-sound daemon:
RUST_LOG=trace cargo run --bin vhost-user-sound -- --socket /tmp/snd.sock --backend null
Invocation:
qemu-system-x86_64 \
-qmp unix:./qmp-sock,server,wait=off \
-m 4096 \
-numa node,memdev=mem \
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
-D qemu.log \
-d guest_errors,trace:\*snd\*,trace:\*sound\*,trace:\*vhost\* \
-chardev socket,id=vsnd,path=/tmp/snd.sock \
-device vhost-user-snd-pci,chardev=vsnd,id=snd \
/path/to/disk
[AJB: imported from https://github.com/epilys/qemu-virtio-snd/commit/54ae1cdd15fef2d88e9e387a175f099a38c636f4.patch]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Message-Id: <20240104210945.1223134-7-alex.bennee@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2024-01-05 00:09:40 +03:00
|
|
|
system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_SND'],
|
|
|
|
if_true: files('vhost-user-snd-pci.c'))
|
2024-01-05 00:09:44 +03:00
|
|
|
system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_INPUT'],
|
|
|
|
if_true: files('vhost-user-input-pci.c'))
|
2022-04-20 18:34:06 +03:00
|
|
|
endif
|
|
|
|
if have_vhost_vdpa
|
2023-07-10 13:05:10 +03:00
|
|
|
system_virtio_ss.add(files('vhost-vdpa.c'))
|
2023-07-10 13:04:32 +03:00
|
|
|
specific_virtio_ss.add(files('vhost-shadow-virtqueue.c'))
|
2022-04-20 18:34:06 +03:00
|
|
|
endif
|
|
|
|
else
|
2023-07-10 13:05:10 +03:00
|
|
|
system_virtio_ss.add(files('vhost-stub.c'))
|
2022-04-20 18:34:06 +03:00
|
|
|
endif
|
|
|
|
|
2022-12-13 14:17:03 +03:00
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: files('virtio-balloon.c'))
|
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost-user-fs.c'))
|
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VIRTIO_PMEM', if_true: files('virtio-pmem.c'))
|
2023-05-24 12:37:39 +03:00
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock.c'))
|
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vhost-user-vsock.c'))
|
2022-12-13 14:17:03 +03:00
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-rng.c'))
|
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('virtio-mem.c'))
|
2023-06-28 13:05:22 +03:00
|
|
|
specific_virtio_ss.add(when: 'CONFIG_VHOST_USER_SCMI', if_true: files('vhost-user-scmi.c'))
|
2023-06-28 13:05:23 +03:00
|
|
|
specific_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_SCMI'], if_true: files('vhost-user-scmi-pci.c'))
|
2019-08-15 16:23:36 +03:00
|
|
|
|
|
|
|
virtio_pci_ss = ss.source_set()
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_VSOCK', if_true: files('vhost-user-vsock-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_BLK', if_true: files('vhost-user-blk-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_SCSI', if_true: files('vhost-user-scsi-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi-pci.c'))
|
2022-04-20 18:34:00 +03:00
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost-user-fs-pci.c'))
|
|
|
|
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-crypto-pci.c'))
|
2019-08-15 16:23:36 +03:00
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_INPUT_HOST', if_true: files('virtio-input-host-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_INPUT', if_true: files('virtio-input-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-rng-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: files('virtio-balloon-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_9P', if_true: files('virtio-9p-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_SCSI', if_true: files('virtio-scsi-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('virtio-net-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_SERIAL', if_true: files('virtio-serial-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_PMEM', if_true: files('virtio-pmem-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-iommu-pci.c'))
|
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_MEM', if_true: files('virtio-mem-pci.c'))
|
2022-12-15 16:49:42 +03:00
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-dev-pci.c'))
|
2023-07-11 18:34:39 +03:00
|
|
|
virtio_pci_ss.add(when: 'CONFIG_VIRTIO_MD', if_true: files('virtio-md-pci.c'))
|
2019-08-15 16:23:36 +03:00
|
|
|
|
2022-12-13 14:17:03 +03:00
|
|
|
specific_virtio_ss.add_all(when: 'CONFIG_VIRTIO_PCI', if_true: virtio_pci_ss)
|
2019-08-15 16:23:36 +03:00
|
|
|
|
2023-07-10 13:05:10 +03:00
|
|
|
system_ss.add_all(when: 'CONFIG_VIRTIO', if_true: system_virtio_ss)
|
2023-06-13 16:33:47 +03:00
|
|
|
system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('vhost-stub.c'))
|
|
|
|
system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('virtio-stub.c'))
|
2024-04-08 18:53:23 +03:00
|
|
|
system_ss.add(when: 'CONFIG_VIRTIO_MD', if_false: files('virtio-md-stubs.c'))
|
|
|
|
|
2023-06-13 16:33:47 +03:00
|
|
|
system_ss.add(files('virtio-hmp-cmds.c'))
|
2022-12-13 14:17:03 +03:00
|
|
|
|
|
|
|
specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss)
|
2023-12-18 18:02:36 +03:00
|
|
|
system_ss.add(when: 'CONFIG_ACPI', if_true: files('virtio-acpi.c'))
|