New upstream version 17.11-rc3
[deb_dpdk.git] / lib / librte_eal / common / include / rte_eal_interrupts.h
 #error "don't include this file directly, please include generic <rte_interrupts.h>"
 #endif
 
-#ifndef _RTE_LINUXAPP_INTERRUPTS_H_
-#define _RTE_LINUXAPP_INTERRUPTS_H_
+/**
+ * @file rte_eal_interrupts.h
+ * @internal
+ *
+ * Contains function prototypes exposed by the EAL for interrupt handling by
+ * drivers and other DPDK internal consumers.
+ */
+
+#ifndef _RTE_EAL_INTERRUPTS_H_
+#define _RTE_EAL_INTERRUPTS_H_
 
 #define RTE_MAX_RXTX_INTR_VEC_ID     32
 #define RTE_INTR_VEC_ZERO_OFFSET      0
 #define RTE_INTR_VEC_RXTX_OFFSET      1
 
+/**
+ * The interrupt source type, e.g. UIO, VFIO, ALARM etc.
+ */
 enum rte_intr_handle_type {
-       RTE_INTR_HANDLE_UNKNOWN = 0,
+       RTE_INTR_HANDLE_UNKNOWN = 0,  /**< generic unknown handle */
        RTE_INTR_HANDLE_UIO,          /**< uio device handle */
        RTE_INTR_HANDLE_UIO_INTX,     /**< uio generic handle */
        RTE_INTR_HANDLE_VFIO_LEGACY,  /**< vfio device handle (legacy) */
@@ -52,7 +63,7 @@ enum rte_intr_handle_type {
        RTE_INTR_HANDLE_ALARM,        /**< alarm handle */
        RTE_INTR_HANDLE_EXT,          /**< external handler */
        RTE_INTR_HANDLE_VDEV,         /**< virtual device */
-       RTE_INTR_HANDLE_MAX
+       RTE_INTR_HANDLE_MAX           /**< count of elements */
 };
 
 #define RTE_INTR_EVENT_ADD            1UL
@@ -86,13 +97,13 @@ struct rte_intr_handle {
        RTE_STD_C11
        union {
                int vfio_dev_fd;  /**< VFIO device file descriptor */
-               int uio_cfg_fd;  /**< UIO config file descriptor
-                                       for uio_pci_generic */
+               int uio_cfg_fd;  /**< UIO cfg file desc for uio_pci_generic */
        };
        int fd;  /**< interrupt event file descriptor */
        enum rte_intr_handle_type type;  /**< handle type */
        uint32_t max_intr;             /**< max interrupt requested */
        uint32_t nb_efd;               /**< number of available efd(event fd) */
+       uint8_t efd_counter_size;      /**< size of efd counter, used for vdev */
        int efds[RTE_MAX_RXTX_INTR_VEC_ID];  /**< intr vectors/efds mapping */
        struct rte_epoll_event elist[RTE_MAX_RXTX_INTR_VEC_ID];
                                       /**< intr vector epoll event */
@@ -236,4 +247,4 @@ rte_intr_allow_others(struct rte_intr_handle *intr_handle);
 int
 rte_intr_cap_multiple(struct rte_intr_handle *intr_handle);
 
-#endif /* _RTE_LINUXAPP_INTERRUPTS_H_ */
+#endif /* _RTE_EAL_INTERRUPTS_H_ */