diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2012-06-14 12:16:47 -0600 |
---|---|---|
committer | Michael S. Tsirkin <mst@robin.(none)> | 2012-06-18 10:21:11 +0300 |
commit | 5a2c20298196e1eea212ca0fb6d0f68869a1b86d (patch) | |
tree | 4b98d41ac1f587f2de959a0db28c9eadb1068e07 /hw/msix.h | |
parent | d35e428c8400f9ddc07e5a15ff19622c869b9ba0 (diff) |
msix: Allow full specification of MSIX layout
Finally, complete the fully specified interface. msix_add_config()
gets folded into msix_init() because we now have quite a few parameters
to pass and rolling it in let's us error earlier, avoiding the ugly
unwind exit path. msix_mmio_setup() also gets rolled in, just because
it's redundant to rediscover offsets when we already have them for
such a tiny function.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/msix.h')
-rw-r--r-- | hw/msix.h | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -4,15 +4,17 @@ #include "qemu-common.h" #include "pci.h" -int msix_init(PCIDevice *pdev, unsigned short nentries, - MemoryRegion *bar, - unsigned bar_nr, unsigned bar_size); +int msix_init(PCIDevice *dev, unsigned short nentries, + MemoryRegion *table_bar, uint8_t table_bar_nr, + unsigned table_offset, MemoryRegion *pba_bar, + uint8_t pba_bar_nr, unsigned pba_offset, uint8_t cap_pos); int msix_init_exclusive_bar(PCIDevice *dev, unsigned short nentries, uint8_t bar_nr); void msix_write_config(PCIDevice *dev, uint32_t address, uint32_t val, int len); -int msix_uninit(PCIDevice *d, MemoryRegion *bar); +int msix_uninit(PCIDevice *dev, MemoryRegion *table_bar, + MemoryRegion *pba_bar); void msix_uninit_exclusive_bar(PCIDevice *dev); unsigned int msix_nr_vectors_allocated(const PCIDevice *dev); |