diff options
Diffstat (limited to 'include/xen/interface/physdev.h')
| -rw-r--r-- | include/xen/interface/physdev.h | 34 | 
1 files changed, 33 insertions, 1 deletions
diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h index 534cac89a77d..c1080d9c705d 100644 --- a/include/xen/interface/physdev.h +++ b/include/xen/interface/physdev.h @@ -109,6 +109,7 @@ struct physdev_irq {  #define MAP_PIRQ_TYPE_MSI		0x0  #define MAP_PIRQ_TYPE_GSI		0x1  #define MAP_PIRQ_TYPE_UNKNOWN		0x2 +#define MAP_PIRQ_TYPE_MSI_SEG		0x3  #define PHYSDEVOP_map_pirq		13  struct physdev_map_pirq { @@ -119,7 +120,7 @@ struct physdev_map_pirq {      int index;      /* IN or OUT */      int pirq; -    /* IN */ +    /* IN - high 16 bits hold segment for MAP_PIRQ_TYPE_MSI_SEG */      int bus;      /* IN */      int devfn; @@ -198,6 +199,37 @@ struct physdev_get_free_pirq {      uint32_t pirq;  }; +#define XEN_PCI_DEV_EXTFN              0x1 +#define XEN_PCI_DEV_VIRTFN             0x2 +#define XEN_PCI_DEV_PXM                0x4 + +#define PHYSDEVOP_pci_device_add        25 +struct physdev_pci_device_add { +    /* IN */ +    uint16_t seg; +    uint8_t bus; +    uint8_t devfn; +    uint32_t flags; +    struct { +        uint8_t bus; +        uint8_t devfn; +    } physfn; +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +    uint32_t optarr[]; +#elif defined(__GNUC__) +    uint32_t optarr[0]; +#endif +}; + +#define PHYSDEVOP_pci_device_remove     26 +#define PHYSDEVOP_restore_msi_ext       27 +struct physdev_pci_device { +    /* IN */ +    uint16_t seg; +    uint8_t bus; +    uint8_t devfn; +}; +  /*   * Notify that some PIRQ-bound event channels have been unmasked.   * ** This command is obsolete since interface version 0x00030202 and is **  | 
