diff options
author | Joe Damato <jdamato@fastly.com> | 2024-05-28 17:37:06 +0000 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2024-06-04 12:09:15 -0500 |
commit | 92c270d32caf3f8d5a02b8e46c7ec5d9d0315158 (patch) | |
tree | cd19ddbbfe7031daa99539773a5d18daa934c1db /sysdeps/unix/sysv/linux/sys | |
parent | 400bdb5c85af5a52b3f5653357c9fca87f036bd3 (diff) | |
download | glibc-92c270d32caf3f8d5a02b8e46c7ec5d9d0315158.tar.gz glibc-92c270d32caf3f8d5a02b8e46c7ec5d9d0315158.tar.xz glibc-92c270d32caf3f8d5a02b8e46c7ec5d9d0315158.zip |
Linux: Add epoll ioctls
As of Linux kernel 6.9, some ioctls and a parameters structure have been introduced which allow user programs to control whether a particular epoll context will busy poll. Update the headers to include these for the convenience of user apps. The ioctls were added in Linux kernel 6.9 commit 18e2bf0edf4dd ("eventpoll: Add epoll ioctl for epoll_params") [1] to include/uapi/linux/eventpoll.h. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/?h=v6.9&id=18e2bf0edf4dd Signed-off-by: Joe Damato <jdamato@fastly.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps/unix/sysv/linux/sys')
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/epoll.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h index fc8dce45c8..45e546fa44 100644 --- a/sysdeps/unix/sysv/linux/sys/epoll.h +++ b/sysdeps/unix/sysv/linux/sys/epoll.h @@ -19,6 +19,7 @@ #define _SYS_EPOLL_H 1 #include <stdint.h> +#include <sys/ioctl.h> #include <sys/types.h> #include <bits/types/sigset_t.h> @@ -87,6 +88,19 @@ struct epoll_event epoll_data_t data; /* User data variable */ } __EPOLL_PACKED; +struct epoll_params +{ + uint32_t busy_poll_usecs; + uint16_t busy_poll_budget; + uint8_t prefer_busy_poll; + + /* pad the struct to a multiple of 64bits */ + uint8_t __pad; +}; + +#define EPOLL_IOC_TYPE 0x8A +#define EPIOCSPARAMS _IOW(EPOLL_IOC_TYPE, 0x01, struct epoll_params) +#define EPIOCGPARAMS _IOR(EPOLL_IOC_TYPE, 0x02, struct epoll_params) __BEGIN_DECLS |