Less controvertial than my first approach [*] which caches the access_is_big_endian value in VirtIODevice state, this series just remove a unnecessary / pointless dependency on "virtio-access.h", allowing to build various virtio objects once for all targets.
First we introduce the qemu_target_page_mask() and _align() helpers, similar to the _size() and _bits() equivalents, then we mostly perform meson.build massages. Mostly trivial. Last patch is RFC in case there is a performance issue. https://lore.kernel.org/qemu-devel/20221212230517.28872-11-phi...@linaro.org/ Philippe Mathieu-Daudé (11): softmmu: Introduce qemu_target_page_mask/qemu_target_page_align helpers hw/scsi: Introduce VHOST_SCSI_COMMON symbol in Kconfig hw/scsi: Rearrange meson.build hw/scsi: Rename target-specific source set as 'specific_virtio_scsi_ss' hw/virtio: Introduce VHOST_VSOCK_COMMON symbol in Kconfig hw/virtio/virtio-mem: Use qemu_ram_get_fd() helper hw/virtio/vhost-vsock: Include missing 'virtio/virtio-bus.h' header hw/virtio/virtio-iommu: Use target-agnostic qemu_target_page_mask() hw/virtio: Remove unnecessary 'virtio-access.h' header hw/virtio: Build various target-agnostic objects just once hw/virtio: Make vhost-vdpa.c target-agnostic to build it once include/exec/target_page.h | 2 ++ hw/block/dataplane/virtio-blk.c | 1 - hw/s390x/virtio-ccw.c | 1 - hw/scsi/vhost-scsi.c | 1 - hw/scsi/vhost-user-scsi.c | 1 - hw/scsi/virtio-scsi-dataplane.c | 1 - hw/virtio/vdpa-dev.c | 1 - hw/virtio/vhost-vdpa.c | 17 ++++++++--------- hw/virtio/vhost-vsock-common.c | 2 +- hw/virtio/vhost.c | 1 - hw/virtio/virtio-crypto.c | 1 - hw/virtio/virtio-iommu.c | 4 ++-- hw/virtio/virtio-mem.c | 3 +-- softmmu/physmem.c | 10 ++++++++++ hw/block/dataplane/meson.build | 2 +- hw/scsi/Kconfig | 6 ++++++ hw/scsi/meson.build | 19 ++++++++++++------- hw/virtio/Kconfig | 6 ++++++ hw/virtio/meson.build | 17 ++++++++++------- 19 files changed, 59 insertions(+), 37 deletions(-) -- 2.38.1