4 #include "qemu-common.h"
7 void msix_set_message(PCIDevice
*dev
, int vector
, MSIMessage msg
);
8 int msix_init(PCIDevice
*dev
, unsigned short nentries
,
9 MemoryRegion
*table_bar
, uint8_t table_bar_nr
,
10 unsigned table_offset
, MemoryRegion
*pba_bar
,
11 uint8_t pba_bar_nr
, unsigned pba_offset
, uint8_t cap_pos
);
12 int msix_init_exclusive_bar(PCIDevice
*dev
, unsigned short nentries
,
15 void msix_write_config(PCIDevice
*dev
, uint32_t address
, uint32_t val
, int len
);
17 void msix_uninit(PCIDevice
*dev
, MemoryRegion
*table_bar
,
18 MemoryRegion
*pba_bar
);
19 void msix_uninit_exclusive_bar(PCIDevice
*dev
);
21 unsigned int msix_nr_vectors_allocated(const PCIDevice
*dev
);
23 void msix_save(PCIDevice
*dev
, QEMUFile
*f
);
24 void msix_load(PCIDevice
*dev
, QEMUFile
*f
);
26 int msix_enabled(PCIDevice
*dev
);
27 int msix_present(PCIDevice
*dev
);
29 int msix_vector_use(PCIDevice
*dev
, unsigned vector
);
30 void msix_vector_unuse(PCIDevice
*dev
, unsigned vector
);
31 void msix_unuse_all_vectors(PCIDevice
*dev
);
33 void msix_notify(PCIDevice
*dev
, unsigned vector
);
35 void msix_reset(PCIDevice
*dev
);
37 int msix_set_vector_notifiers(PCIDevice
*dev
,
38 MSIVectorUseNotifier use_notifier
,
39 MSIVectorReleaseNotifier release_notifier
);
40 void msix_unset_vector_notifiers(PCIDevice
*dev
);