v2: - split patch - rename msix_[un]init_bar() to msix_[un]init_exclusive_bar() - add the cherry on top to cleaning up PCIDevice naming
Thanks, Alex v1: msix_init has very little configurability as to how it lays out MSIX for a device. It claims to resize BARs, but doesn't actually do this anymore. This patch allows MSIX to be fully specified, which is necessary both for emulated devices trying to match the physical layout of a hardware device as well as for any kind of device assignment. New functions msix_init_bar & msix_uninit_bar provide wrappers around the more detailed functions for drivers that just want a simple MSIX setup. --- Alex Williamson (6): msix: Fix last PCIDevice naming inconsitency msix: Allow full specification of MSIX layout msix: Split PBA into it's own MemoryRegion virtio: Convert to msix_init_exclusive_bar() interface ivshmem: Convert to msix_init_exclusive_bar() interface msix: Add simple BAR allocation MSIX setup functions hw/ivshmem.c | 10 +- hw/msix.c | 308 +++++++++++++++++++++++++++++++------------------------ hw/msix.h | 20 ++-- hw/pci.h | 17 ++- hw/virtio-pci.c | 15 +-- hw/virtio-pci.h | 1 6 files changed, 209 insertions(+), 162 deletions(-)