mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 17:56:50 +00:00
[libc] Disable epoll_pwait2 for now. (#99967)
This patch reverts #99781 and part of #99771 since `epoll_pwait2` is not in fact available on all supported systems. It is my opinion that we shouldn't provide a version of a function that doesn't perform as expected, which is why this revert needs to happen. The `epoll_pwait2` function can be reenabled when we have a way to check if it is available on the target system, tracking bug for that is #80060
This commit is contained in:
parent
a1359f5ed4
commit
173514ff12
@ -228,7 +228,9 @@ set(TARGET_LIBC_ENTRYPOINTS
|
||||
libc.src.sys.epoll.epoll_ctl
|
||||
libc.src.sys.epoll.epoll_pwait
|
||||
libc.src.sys.epoll.epoll_wait
|
||||
libc.src.sys.epoll.epoll_pwait2
|
||||
# TODO: Need to check if pwait2 is available before providing.
|
||||
# https://github.com/llvm/llvm-project/issues/80060
|
||||
# libc.src.sys.epoll.epoll_pwait2
|
||||
|
||||
# sys/mman.h entrypoints
|
||||
libc.src.sys.mman.madvise
|
||||
|
@ -228,7 +228,9 @@ set(TARGET_LIBC_ENTRYPOINTS
|
||||
libc.src.sys.epoll.epoll_ctl
|
||||
libc.src.sys.epoll.epoll_pwait
|
||||
libc.src.sys.epoll.epoll_wait
|
||||
libc.src.sys.epoll.epoll_pwait2
|
||||
# TODO: Need to check if pwait2 is available before providing.
|
||||
# https://github.com/llvm/llvm-project/issues/80060
|
||||
# libc.src.sys.epoll.epoll_pwait2
|
||||
|
||||
# sys/mman.h entrypoints
|
||||
libc.src.sys.mman.madvise
|
||||
|
@ -25,22 +25,10 @@ namespace LIBC_NAMESPACE_DECL {
|
||||
LLVM_LIBC_FUNCTION(int, epoll_pwait2,
|
||||
(int epfd, struct epoll_event *events, int maxevents,
|
||||
const struct timespec *timeout, const sigset_t *sigmask)) {
|
||||
#ifdef SYS_epoll_pwait2
|
||||
int ret = LIBC_NAMESPACE::syscall_impl<int>(
|
||||
SYS_epoll_pwait2, epfd, reinterpret_cast<long>(events), maxevents,
|
||||
reinterpret_cast<long>(timeout), reinterpret_cast<long>(sigmask),
|
||||
NSIG / 8);
|
||||
#elif defined(SYS_epoll_pwait)
|
||||
// Convert nanoseconds to milliseconds, rounding up if there are remaining
|
||||
// nanoseconds
|
||||
long timeout_ms = static_cast<long>(timeout->tv_sec * 1000 +
|
||||
(timeout->tv_nsec + 999999) / 1000000);
|
||||
int ret = LIBC_NAMESPACE::syscall_impl<int>(
|
||||
SYS_epoll_pwait, epfd, reinterpret_cast<long>(events), maxevents,
|
||||
timeout_ms, reinterpret_cast<long>(sigmask), NSIG / 8);
|
||||
#else
|
||||
#error "epoll_pwait and epoll_pwait2 syscalls not available."
|
||||
#endif
|
||||
|
||||
// A negative return value indicates an error with the magnitude of the
|
||||
// value being the error code.
|
||||
|
Loading…
x
Reference in New Issue
Block a user