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) | |
| download | focaccia-qemu-5a2c20298196e1eea212ca0fb6d0f68869a1b86d.tar.gz focaccia-qemu-5a2c20298196e1eea212ca0fb6d0f68869a1b86d.zip | |
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
diff --git a/hw/msix.h b/hw/msix.h index f681bb0855..f637797b8f 100644 --- a/hw/msix.h +++ b/hw/msix.h @@ -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); |