eal/linux: add interrupt vectors

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>
This commit is contained in:
Cunming Liang 2015-07-20 11:02:17 +08:00 committed by Thomas Monjalon
parent e935077450
commit d37641029a
2 changed files with 13 additions and 0 deletions

View 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_ */

View 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_ */