DPDK  24.03.0
rte_epoll.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell International Ltd.
3  */
4 
5 #ifndef __RTE_EPOLL_H__
6 #define __RTE_EPOLL_H__
7 
14 #include <stdint.h>
15 
16 #include <rte_stdatomic.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #define RTE_INTR_EVENT_ADD 1UL
23 #define RTE_INTR_EVENT_DEL 2UL
24 
25 typedef void (*rte_intr_event_cb_t)(int fd, void *arg);
26 
27 struct rte_epoll_data {
28  uint32_t event;
29  void *data;
30  rte_intr_event_cb_t cb_fun;
31  void *cb_arg;
32 };
33 
34 enum {
35  RTE_EPOLL_INVALID = 0,
36  RTE_EPOLL_VALID,
37  RTE_EPOLL_EXEC,
38 };
39 
42  RTE_ATOMIC(uint32_t) status;
43  int fd;
44  int epfd;
45  struct rte_epoll_data epdata;
46 };
47 
48 #define RTE_EPOLL_PER_THREAD -1
67 int
68 rte_epoll_wait(int epfd, struct rte_epoll_event *events,
69  int maxevents, int timeout);
70 
88 int
89 rte_epoll_wait_interruptible(int epfd, struct rte_epoll_event *events,
90  int maxevents, int timeout);
91 
109 int
110 rte_epoll_ctl(int epfd, int op, int fd,
111  struct rte_epoll_event *event);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif /* __RTE_EPOLL_H__ */
int rte_epoll_wait_interruptible(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
int rte_epoll_wait(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
int rte_epoll_ctl(int epfd, int op, int fd, struct rte_epoll_event *event)
uint32_t status
Definition: rte_epoll.h:42