syscalls/x64: Add pselect6

This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis committed 2020-05-31 15:31:16 +03:00
1 parent a47f9d48f5
commit 63ea0358bd
4 files changed
+18

No files matched your search

+5
View File
@@ -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);
+1
View File
@@ -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);
+11
View File
@@ -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},
+1
View File
@@ -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