mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-25 15:00:12 +01:00
syscalls/x64: Add pselect6
This commit is contained in:
1 parent
a47f9d48f5
commit
63ea0358bd
4 files changed
+18
No files matched your search
@@ -293,6 +293,11 @@ namespace FEXCore::HLE {
|
||||
SYSCALL_ERRNO();
|
||||
}
|
||||
|
||||
uint64_t Pselect6(FEXCore::Core::InternalThreadState *Thread, int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigmask) {
|
||||
uint64_t Result = pselect(nfds, readfds, writefds, exceptfds, timeout, sigmask);
|
||||
SYSCALL_ERRNO();
|
||||
}
|
||||
|
||||
uint64_t Ppoll(FEXCore::Core::InternalThreadState *Thread, struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts, const sigset_t *sigmask, size_t sigsetsize) {
|
||||
// sigsetsize is unused here since it is currently a constant and not exposed through glibc
|
||||
uint64_t Result = ::ppoll(fds, nfds, timeout_ts, sigmask);
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace FEXCore::HLE {
|
||||
uint64_t Inotify_init1(FEXCore::Core::InternalThreadState *Thread, int flags);
|
||||
uint64_t Memfd_Create(FEXCore::Core::InternalThreadState *Thread, const char *name, uint32_t flags);
|
||||
uint64_t Statx(FEXCore::Core::InternalThreadState *Thread, int dirfd, const char *pathname, int flags, uint32_t mask, struct statx *statxbuf);
|
||||
uint64_t Pselect6(FEXCore::Core::InternalThreadState *Thread, int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigmask);
|
||||
uint64_t Ppoll(FEXCore::Core::InternalThreadState *Thread, struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts, const sigset_t *sigmask, size_t sigsetsize);
|
||||
uint64_t Name_to_handle_at(FEXCore::Core::InternalThreadState *Thread, int dirfd, const char *pathname, struct file_handle *handle, int *mount_id, int flags);
|
||||
uint64_t Open_by_handle_at(FEXCore::Core::InternalThreadState *Thread, int mount_fd, struct file_handle *handle, int flags);
|
||||
|
||||
@@ -391,6 +391,16 @@ void x64SyscallHandler::Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Re
|
||||
Args->Argument[4],
|
||||
Ret);
|
||||
break;
|
||||
case SYSCALL_PSELECT6:
|
||||
LogMan::Msg::D("pselect6(%d, %p, %p, %p, %p, %p) = %ld",
|
||||
Args->Argument[1],
|
||||
Args->Argument[2],
|
||||
Args->Argument[3],
|
||||
Args->Argument[4],
|
||||
Args->Argument[5],
|
||||
Args->Argument[6],
|
||||
Ret);
|
||||
break;
|
||||
case SYSCALL_PPOLL:
|
||||
LogMan::Msg::D("ppoll(%p, %d, %p, %p, %d) = %ld",
|
||||
Args->Argument[1],
|
||||
@@ -895,6 +905,7 @@ void x64SyscallHandler::RegisterSyscallHandlers() {
|
||||
{SYSCALL_NEWFSTATAT, cvt(&FEXCore::HLE::NewFStatat), 4},
|
||||
{SYSCALL_READLINKAT, cvt(&FEXCore::HLE::Readlinkat), 4},
|
||||
{SYSCALL_FACCESSAT, cvt(&FEXCore::HLE::FAccessat), 4},
|
||||
{SYSCALL_PSELECT6, cvt(&FEXCore::HLE::Pselect6), 6},
|
||||
{SYSCALL_PPOLL, cvt(&FEXCore::HLE::Ppoll), 5},
|
||||
{SYSCALL_SET_ROBUST_LIST, cvt(&FEXCore::HLE::Set_robust_list), 2},
|
||||
{SYSCALL_GET_ROBUST_LIST, cvt(&FEXCore::HLE::Get_robust_list), 3},
|
||||
|
||||
@@ -172,6 +172,7 @@ enum Syscalls {
|
||||
SYSCALL_NEWFSTATAT = 262, ///< __NR_newfstatat
|
||||
SYSCALL_READLINKAT = 267, ///< __NR_readlinkat
|
||||
SYSCALL_FACCESSAT = 269, ///< __NR_faccessat
|
||||
SYSCALL_PSELECT6 = 270, ///< __NR_pselect6
|
||||
SYSCALL_PPOLL = 271, ///< __NR_ppoll
|
||||
SYSCALL_SET_ROBUST_LIST = 273, ///< __NR_set_robust_list
|
||||
SYSCALL_GET_ROBUST_LIST = 274, ///< __NR_get_robust_list
|
||||
|
||||
Reference in new issue
Block a user