/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* * include/linux/eventpoll.h ( Efficient event polling implementation ) * Copyright (C) 2001,...,2006 Davide Libenzi * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Davide Libenzi <[email protected]> * */ #ifndef _UAPI_LINUX_EVENTPOLL_H #define _UAPI_LINUX_EVENTPOLL_H /* For O_CLOEXEC */ #include <linux/fcntl.h> #include <linux/types.h> /* Flags for epoll_create1. */ #define EPOLL_CLOEXEC … /* Valid opcodes to issue to sys_epoll_ctl() */ #define EPOLL_CTL_ADD … #define EPOLL_CTL_DEL … #define EPOLL_CTL_MOD … /* Epoll event masks */ #define EPOLLIN … #define EPOLLPRI … #define EPOLLOUT … #define EPOLLERR … #define EPOLLHUP … #define EPOLLNVAL … #define EPOLLRDNORM … #define EPOLLRDBAND … #define EPOLLWRNORM … #define EPOLLWRBAND … #define EPOLLMSG … #define EPOLLRDHUP … /* * Internal flag - wakeup generated by io_uring, used to detect recursion back * into the io_uring poll handler. */ #define EPOLL_URING_WAKE … /* Set exclusive wakeup mode for the target file descriptor */ #define EPOLLEXCLUSIVE … /* * Request the handling of system wakeup events so as to prevent system suspends * from happening while those events are being processed. * * Assuming neither EPOLLET nor EPOLLONESHOT is set, system suspends will not be * re-allowed until epoll_wait is called again after consuming the wakeup * event(s). * * Requires CAP_BLOCK_SUSPEND */ #define EPOLLWAKEUP … /* Set the One Shot behaviour for the target file descriptor */ #define EPOLLONESHOT … /* Set the Edge Triggered behaviour for the target file descriptor */ #define EPOLLET … /* * On x86-64 make the 64bit structure have the same alignment as the * 32bit structure. This makes 32bit emulation easier. * * UML/x86_64 needs the same packing as x86_64 */ #ifdef __x86_64__ #define EPOLL_PACKED … #else #define EPOLL_PACKED #endif struct epoll_event { … } EPOLL_PACKED; struct epoll_params { … }; #define EPOLL_IOC_TYPE … #define EPIOCSPARAMS … #define EPIOCGPARAMS … #endif /* _UAPI_LINUX_EVENTPOLL_H */