34 #ifndef _RTE_INTERRUPTS_H_
35 #error "don't include this file directly, please include generic <rte_interrupts.h>"
46 #ifndef _RTE_EAL_INTERRUPTS_H_
47 #define _RTE_EAL_INTERRUPTS_H_
49 #define RTE_MAX_RXTX_INTR_VEC_ID 32
50 #define RTE_INTR_VEC_ZERO_OFFSET 0
51 #define RTE_INTR_VEC_RXTX_OFFSET 1
69 #define RTE_INTR_EVENT_ADD 1UL
70 #define RTE_INTR_EVENT_DEL 2UL
72 typedef void (*rte_intr_event_cb_t)(
int fd,
void *arg);
74 struct rte_epoll_data {
77 rte_intr_event_cb_t cb_fun;
82 RTE_EPOLL_INVALID = 0,
92 struct rte_epoll_data epdata;
107 int efds[RTE_MAX_RXTX_INTR_VEC_ID];
113 #define RTE_EPOLL_PER_THREAD -1
133 int maxevents,
int timeout);
183 int epfd,
int op,
unsigned int vec,
void *data);
struct rte_epoll_event elist[RTE_MAX_RXTX_INTR_VEC_ID]
int rte_intr_rx_ctl(struct rte_intr_handle *intr_handle, int epfd, int op, unsigned int vec, void *data)
int rte_intr_efd_enable(struct rte_intr_handle *intr_handle, uint32_t nb_efd)
int rte_epoll_ctl(int epfd, int op, int fd, struct rte_epoll_event *event)
int rte_intr_cap_multiple(struct rte_intr_handle *intr_handle)
int efds[RTE_MAX_RXTX_INTR_VEC_ID]
int rte_intr_tls_epfd(void)
int rte_epoll_wait(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
void rte_intr_free_epoll_fd(struct rte_intr_handle *intr_handle)
enum rte_intr_handle_type type
void rte_intr_efd_disable(struct rte_intr_handle *intr_handle)
int rte_intr_allow_others(struct rte_intr_handle *intr_handle)
int rte_intr_dp_is_en(struct rte_intr_handle *intr_handle)