diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-04 12:28:11 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-04 12:28:11 +0200 |
| commit | 9f4eb36c99723f20e203bda0db07005284ae2eba (patch) | |
| tree | c4b1de9a09ef69c3ba597a82ead6c8017d9ecaaf /src/emu/x86syscall_32.c | |
| parent | cbbafafb46b39b5ccb6f4c08d085317bcf09fba0 (diff) | |
| download | box64-9f4eb36c99723f20e203bda0db07005284ae2eba.tar.gz box64-9f4eb36c99723f20e203bda0db07005284ae2eba.zip | |
[BOX32][WRAPPER] More wrapped function to libc, and many fixes some existing ones
Diffstat (limited to 'src/emu/x86syscall_32.c')
| -rw-r--r-- | src/emu/x86syscall_32.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/emu/x86syscall_32.c b/src/emu/x86syscall_32.c index 0b363ff1..7b2c25d0 100644 --- a/src/emu/x86syscall_32.c +++ b/src/emu/x86syscall_32.c @@ -389,6 +389,14 @@ void EXPORT x86Syscall(x64emu_t *emu) R_EAX = (uint32_t)-errno; } break; + case 449: + #ifdef __NR_futex_waitv + if(box64_futex_waitv) + S_RAX = syscall(__NR_futex_waitv, R_EBX, R_ECX, R_EDX, R_ESI, R_EDI); + else + #endif + S_RAX = -ENOSYS; + break; default: printf_log(LOG_INFO, "Warning: Unsupported Syscall 0x%02Xh (%d)\n", s, s); R_EAX = (uint32_t)-ENOSYS; @@ -595,6 +603,17 @@ uint32_t EXPORT my32_syscall(x64emu_t *emu, ptr_t* b) return (uint32_t)my32_memfd_create(emu, p(4), u32(8)); #endif #endif + case 449: + #ifdef __NR_futex_waitv + if(box64_futex_waitv) + return syscall(__NR_futex_waitv, u32(4), u32(8), u32(12), u32(16), u32(20)); + else + #endif + { + errno = ENOSYS; + return -1; + } + break; default: if((s>>6)<sizeof(warned)/sizeof(warned[0])) { if(!(warned[s>>6]&(1<<(s&0x3f)))) { |