diff options
Diffstat (limited to 'include/xen/interface/physdev.h')
| -rw-r--r-- | include/xen/interface/physdev.h | 21 | 
1 files changed, 19 insertions, 2 deletions
diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h index 7000bb1f6e9..610dba9b620 100644 --- a/include/xen/interface/physdev.h +++ b/include/xen/interface/physdev.h @@ -131,6 +131,7 @@ struct physdev_irq {  #define MAP_PIRQ_TYPE_GSI		0x1  #define MAP_PIRQ_TYPE_UNKNOWN		0x2  #define MAP_PIRQ_TYPE_MSI_SEG		0x3 +#define MAP_PIRQ_TYPE_MULTI_MSI		0x4  #define PHYSDEVOP_map_pirq		13  struct physdev_map_pirq { @@ -141,11 +142,16 @@ struct physdev_map_pirq {      int index;      /* IN or OUT */      int pirq; -    /* IN - high 16 bits hold segment for MAP_PIRQ_TYPE_MSI_SEG */ +    /* IN - high 16 bits hold segment for ..._MSI_SEG and ..._MULTI_MSI */      int bus;      /* IN */      int devfn; -    /* IN */ +    /* IN +     * - For MSI-X contains entry number. +     * - For MSI with ..._MULTI_MSI contains number of vectors. +     * OUT (..._MULTI_MSI only) +     * - Number of vectors allocated. +     */      int entry_nr;      /* IN */      uint64_t table_base; @@ -231,6 +237,17 @@ struct physdev_get_free_pirq {  #define XEN_PCI_DEV_VIRTFN             0x2  #define XEN_PCI_DEV_PXM                0x4 +#define XEN_PCI_MMCFG_RESERVED         0x1 + +#define PHYSDEVOP_pci_mmcfg_reserved    24 +struct physdev_pci_mmcfg_reserved { +    uint64_t address; +    uint16_t segment; +    uint8_t start_bus; +    uint8_t end_bus; +    uint32_t flags; +}; +  #define PHYSDEVOP_pci_device_add        25  struct physdev_pci_device_add {      /* IN */  | 
