summary refs log tree commit diff stats
path: root/hw/msix.h
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@redhat.com>2012-06-14 12:16:47 -0600
committerMichael S. Tsirkin <mst@robin.(none)>2012-06-18 10:21:11 +0300
commit5a2c20298196e1eea212ca0fb6d0f68869a1b86d (patch)
tree4b98d41ac1f587f2de959a0db28c9eadb1068e07 /hw/msix.h
parentd35e428c8400f9ddc07e5a15ff19622c869b9ba0 (diff)
downloadfocaccia-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.h10
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);