about summary refs log tree commit diff stats
path: root/src/emu/x86syscall_32.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-04 12:28:11 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-04 12:28:11 +0200
commit9f4eb36c99723f20e203bda0db07005284ae2eba (patch)
treec4b1de9a09ef69c3ba597a82ead6c8017d9ecaaf /src/emu/x86syscall_32.c
parentcbbafafb46b39b5ccb6f4c08d085317bcf09fba0 (diff)
downloadbox64-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.c19
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)))) {