eal/linux: add interrupt vectors
authorCunming Liang <cunming.liang@intel.com>
Mon, 20 Jul 2015 03:02:17 +0000 (11:02 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Jul 2015 21:13:56 +0000 (23:13 +0200)
The patch adds interrupt vectors support in rte_intr_handle.
'vec_en' is set when interrupt vectors are detected and associated
event fds are set. Those event fds are stored in efds[].
'intr_vec' is reserved for device driver to initialize the vector
mapping table.

Signed-off-by: Danny Zhou <danny.zhou@intel.com>
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
lib/librte_eal/bsdapp/eal/include/exec-env/rte_interrupts.h
lib/librte_eal/linuxapp/eal/include/exec-env/rte_interrupts.h

index d5f391f..3dc4e00 100644 (file)
@@ -50,6 +50,11 @@ struct rte_intr_handle {
        int fd;                          /**< file descriptor */
        int uio_cfg_fd;                  /**< UIO config file descriptor */
        enum rte_intr_handle_type type;  /**< handle type */
+#ifdef RTE_NEXT_ABI
+       int max_intr;                    /**< max interrupt requested */
+       uint32_t nb_efd;                 /**< number of available efds */
+       int *intr_vec;                   /**< intr vector number array */
+#endif
 };
 
 #endif /* _RTE_BSDAPP_INTERRUPTS_H_ */
index bdeb3fc..ac33eda 100644 (file)
@@ -38,6 +38,8 @@
 #ifndef _RTE_LINUXAPP_INTERRUPTS_H_
 #define _RTE_LINUXAPP_INTERRUPTS_H_
 
+#define RTE_MAX_RXTX_INTR_VEC_ID     32
+
 enum rte_intr_handle_type {
        RTE_INTR_HANDLE_UNKNOWN = 0,
        RTE_INTR_HANDLE_UIO,          /**< uio device handle */
@@ -58,6 +60,12 @@ struct rte_intr_handle {
        };
        int fd;  /**< interrupt event file descriptor */
        enum rte_intr_handle_type type;  /**< handle type */
+#ifdef RTE_NEXT_ABI
+       uint32_t max_intr;             /**< max interrupt requested */
+       uint32_t nb_efd;               /**< number of available efd(event fd) */
+       int efds[RTE_MAX_RXTX_INTR_VEC_ID];  /**< intr vectors/efds mapping */
+       int *intr_vec;                 /**< intr vector number array */
+#endif
 };
 
 #endif /* _RTE_LINUXAPP_INTERRUPTS_H_ */