1 #ifndef _IPXE_PCIMSIX_H 2 #define _IPXE_PCIMSIX_H 15 #define PCI_MSIX_LEN 0x1000 18 #define PCI_MSIX_VECTOR(n) ( (n) * 0x10 ) 21 #define PCI_MSIX_ADDRESS_LO 0x0 24 #define PCI_MSIX_ADDRESS_HI 0x4 27 #define PCI_MSIX_DATA 0x8 30 #define PCI_MSIX_CONTROL 0xc 31 #define PCI_MSIX_CONTROL_MASK 0x00000001 int pci_msix_enable(struct pci_device *pci, struct pci_msix *msix)
Enable MSI-X interrupts.
void pci_msix_control(struct pci_msix *msix, unsigned int vector, uint32_t mask)
Control MSI-X interrupt vector.
void pci_msix_map(struct pci_msix *msix, unsigned int vector, physaddr_t address, uint32_t data)
Map MSI-X interrupt vector.
uint32_t vector
MSI-X vector.
uint64_t address
Base address.
static void pci_msix_mask(struct pci_msix *msix, unsigned int vector)
Mask MSI-X interrupt vector.
static void pci_msix_unmask(struct pci_msix *msix, unsigned int vector)
Unmask MSI-X interrupt vector.
unsigned int cap
Capability offset.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define PCI_MSIX_CONTROL_MASK
Vector is masked.
void pci_msix_disable(struct pci_device *pci, struct pci_msix *msix)
Disable MSI-X interrupts.
uint8_t data[48]
Additional event data.
void pci_msix_dump(struct pci_msix *msix, unsigned int vector)
Dump MSI-X interrupt state (for debugging)
void * pba
Pending bit array.
unsigned int count
Number of vectors.