DPDK 25.03.0-rc0
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
19extern "C" {
20#endif
21
22#define RTE_INTR_EVENT_ADD 1UL
23#define RTE_INTR_EVENT_DEL 2UL
24
25typedef void (*rte_intr_event_cb_t)(int fd, void *arg);
26
27struct rte_epoll_data {
28 uint32_t event;
29 void *data;
30 rte_intr_event_cb_t cb_fun;
31 void *cb_arg;
32};
33
34enum {
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
67int
68rte_epoll_wait(int epfd, struct rte_epoll_event *events,
69 int maxevents, int timeout);
70
88int
90 int maxevents, int timeout);
91
109int
110rte_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_ctl(int epfd, int op, int fd, struct rte_epoll_event *event)
int rte_epoll_wait(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
int rte_epoll_wait_interruptible(int epfd, struct rte_epoll_event *events, int maxevents, int timeout)
uint32_t status
Definition: rte_epoll.h:42