5 #ifndef _RTE_INTERRUPTS_H_
6 #error "don't include this file directly, please include generic <rte_interrupts.h>"
17 #ifndef _RTE_EAL_INTERRUPTS_H_
18 #define _RTE_EAL_INTERRUPTS_H_
20 #define RTE_MAX_RXTX_INTR_VEC_ID 512
21 #define RTE_INTR_VEC_ZERO_OFFSET 0
22 #define RTE_INTR_VEC_RXTX_OFFSET 1
42 #define RTE_INTR_EVENT_ADD 1UL
43 #define RTE_INTR_EVENT_DEL 2UL
45 typedef void (*rte_intr_event_cb_t)(
int fd,
void *arg);
47 struct rte_epoll_data {
50 rte_intr_event_cb_t cb_fun;
55 RTE_EPOLL_INVALID = 0,
65 struct rte_epoll_data epdata;
88 int efds[RTE_MAX_RXTX_INTR_VEC_ID];
94 #define RTE_EPOLL_PER_THREAD -1
115 int maxevents,
int timeout);
137 int maxevents,
int timeout);
187 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)
__rte_experimental int rte_thread_is_intr(void)
int rte_epoll_ctl(int epfd, int op, int fd, struct rte_epoll_event *event)
__rte_experimental int rte_epoll_wait_interruptible(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
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)