diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-17 18:17:08 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2012-12-17 18:56:22 +0100 |
commit | 6f991980a5e96f93a9f676959df2dcba665665ef (patch) | |
tree | e6f46c0531e8a05b22be4c5adf7f7fb31afa6d13 /hw/pci/msix.h | |
parent | a8a826a3c3b8c8a1c4def0e9e22b46e78e6163a0 (diff) | |
parent | 1dd3a74d2ee2d873cde0b390b536e45420b3fe05 (diff) |
Merge commit '1dd3a74d2ee2d873cde0b390b536e45420b3fe05' into HEAD
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/pci/msix.h')
-rw-r--r-- | hw/pci/msix.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/hw/pci/msix.h b/hw/pci/msix.h new file mode 100644 index 0000000000..ff07ae2e8f --- /dev/null +++ b/hw/pci/msix.h @@ -0,0 +1,41 @@ +#ifndef QEMU_MSIX_H +#define QEMU_MSIX_H + +#include "qemu-common.h" +#include "hw/pci/pci.h" + +void msix_set_message(PCIDevice *dev, int vector, MSIMessage msg); +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); + +void 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); + +void msix_save(PCIDevice *dev, QEMUFile *f); +void msix_load(PCIDevice *dev, QEMUFile *f); + +int msix_enabled(PCIDevice *dev); +int msix_present(PCIDevice *dev); + +int msix_vector_use(PCIDevice *dev, unsigned vector); +void msix_vector_unuse(PCIDevice *dev, unsigned vector); +void msix_unuse_all_vectors(PCIDevice *dev); + +void msix_notify(PCIDevice *dev, unsigned vector); + +void msix_reset(PCIDevice *dev); + +int msix_set_vector_notifiers(PCIDevice *dev, + MSIVectorUseNotifier use_notifier, + MSIVectorReleaseNotifier release_notifier); +void msix_unset_vector_notifiers(PCIDevice *dev); +#endif |