/* 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 < davidel @ xmailserver . org >
*
*/
#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 O_CLOEXEC
/* Valid opcodes to issue to sys_epoll_ctl() */
#define EPOLL_CTL_ADD 1
#define EPOLL_CTL_DEL 2
#define EPOLL_CTL_MOD 3
/* Epoll event masks */
#define EPOLLIN (__force __poll_t)0 x00000001
#define EPOLLPRI (__force __poll_t)0 x00000002
#define EPOLLOUT (__force __poll_t)0 x00000004
#define EPOLLERR (__force __poll_t)0 x00000008
#define EPOLLHUP (__force __poll_t)0 x00000010
#define EPOLLNVAL (__force __poll_t)0 x00000020
#define EPOLLRDNORM (__force __poll_t)0 x00000040
#define EPOLLRDBAND (__force __poll_t)0 x00000080
#define EPOLLWRNORM (__force __poll_t)0 x00000100
#define EPOLLWRBAND (__force __poll_t)0 x00000200
#define EPOLLMSG (__force __poll_t)0 x00000400
#define EPOLLRDHUP (__force __poll_t)0 x00002000
/*
* Internal flag - wakeup generated by io_uring , used to detect recursion back
* into the io_uring poll handler .
*/
#define EPOLL_URING_WAKE ((__force __poll_t)(1 U << 27 ))
/* Set exclusive wakeup mode for the target file descriptor */
#define EPOLLEXCLUSIVE ((__force __poll_t)(1 U << 28 ))
/*
* 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 ((__force __poll_t)(1 U << 29 ))
/* Set the One Shot behaviour for the target file descriptor */
#define EPOLLONESHOT ((__force __poll_t)(1 U << 30 ))
/* Set the Edge Triggered behaviour for the target file descriptor */
#define EPOLLET ((__force __poll_t)(1 U << 31 ))
/*
* On x86 - 64 make the 64 bit structure have the same alignment as the
* 32 bit structure . This makes 32 bit emulation easier .
*
* UML / x86_64 needs the same packing as x86_64
*/
#ifdef __x86_64__
#define EPOLL_PACKED __attribute__((packed))
#else
#define EPOLL_PACKED
#endif
struct epoll_event {
__poll_t events;
__u64 data;
} EPOLL_PACKED;
struct epoll_params {
__u32 busy_poll_usecs;
__u16 busy_poll_budget;
__u8 prefer_busy_poll;
/* pad the struct to a multiple of 64bits */
__u8 __pad;
};
#define EPOLL_IOC_TYPE 0 x8A
#define EPIOCSPARAMS _IOW(EPOLL_IOC_TYPE, 0 x01, struct epoll_params)
#define EPIOCGPARAMS _IOR(EPOLL_IOC_TYPE, 0 x02, struct epoll_params)
#endif /* _UAPI_LINUX_EVENTPOLL_H */
Messung V0.5 in Prozent C=87 H=100 G=93
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland