This updates kernel header (vfio.h) for EEH support on VFIO PCI
devices.

Signed-off-by: Gavin Shan <gws...@linux.vnet.ibm.com>
---
 linux-headers/linux/vfio.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index 26c218e..95b591b 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -30,6 +30,9 @@
  */
 #define VFIO_DMA_CC_IOMMU              4
 
+/* Check if EEH is supported */
+#define VFIO_EEH                       5
+
 /*
  * The IOCTL interface is designed for extensibility by embedding the
  * structure length (argsz) and flags into structures passed between
@@ -455,6 +458,37 @@ struct vfio_iommu_spapr_tce_info {
 
 #define VFIO_IOMMU_SPAPR_TCE_GET_INFO  _IO(VFIO_TYPE, VFIO_BASE + 12)
 
+/*
+ * EEH PE operation struct provides ways to:
+ * - enable/disable EEH functionality;
+ * - unfreeze IO/DMA for frozen PE;
+ * - read PE state;
+ * - reset PE;
+ * - configure PE.
+ */
+struct vfio_eeh_pe_op {
+       __u32 argsz;
+       __u32 flags;
+       __u32 op;
+};
+
+#define VFIO_EEH_PE_DISABLE            0       /* Disable EEH functionality */
+#define VFIO_EEH_PE_ENABLE             1       /* Enable EEH functionality  */
+#define VFIO_EEH_PE_UNFREEZE_IO                2       /* Enable IO for frozen 
PE   */
+#define VFIO_EEH_PE_UNFREEZE_DMA       3       /* Enable DMA for frozen PE  */
+#define VFIO_EEH_PE_GET_STATE          4       /* PE state retrieval        */
+#define  VFIO_EEH_PE_STATE_NORMAL      0       /* PE in functional state    */
+#define  VFIO_EEH_PE_STATE_RESET       1       /* PE reset in progress      */
+#define  VFIO_EEH_PE_STATE_STOPPED     2       /* Stopped DMA and IO        */
+#define  VFIO_EEH_PE_STATE_STOPPED_DMA 4       /* Stopped DMA only          */
+#define  VFIO_EEH_PE_STATE_UNAVAIL     5       /* State unavailable         */
+#define VFIO_EEH_PE_RESET_DEACTIVATE   5       /* Deassert PE reset         */
+#define VFIO_EEH_PE_RESET_HOT          6       /* Assert hot reset          */
+#define VFIO_EEH_PE_RESET_FUNDAMENTAL  7       /* Assert fundamental reset  */
+#define VFIO_EEH_PE_CONFIGURE          8       /* PE configuration          */
+
+#define VFIO_EEH_PE_OP                 _IO(VFIO_TYPE, VFIO_BASE + 21)
+
 /* ***************************************************************** */
 
 #endif /* VFIO_H */
-- 
1.8.3.2


Reply via email to