diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-03-26 13:20:34 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-03-26 13:20:34 +0100 |
| commit | 1eaa7159a6416640bccf3cc3541adedcde2649b0 (patch) | |
| tree | a45af1710cc233e1deeef13374af8ed7b59d79c1 /src/emu/x64syscall.c | |
| parent | 4015c26e68a5ce812673a3d434f8d98fa21755c1 (diff) | |
| download | box64-1eaa7159a6416640bccf3cc3541adedcde2649b0.tar.gz box64-1eaa7159a6416640bccf3cc3541adedcde2649b0.zip | |
More work around steam and proton/SteamPlay (working, but need also latest box86)
Diffstat (limited to 'src/emu/x64syscall.c')
| -rwxr-xr-x | src/emu/x64syscall.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/emu/x64syscall.c b/src/emu/x64syscall.c index d83cbaba..c9fa59dc 100755 --- a/src/emu/x64syscall.c +++ b/src/emu/x64syscall.c @@ -177,6 +177,9 @@ scwrap_t syscallwrap[] = { #ifdef __NR_fchmodat4 { 434, __NR_fchmodat4, 4}, #endif + #ifdef __NR_futex_waitv + { 449, __NR_futex_waitv, 5}, + #endif }; struct mmap_arg_struct { @@ -483,6 +486,7 @@ void EXPORT x64Syscall(x64emu_t *emu) uintptr_t EXPORT my_syscall(x64emu_t *emu) { + static uint32_t warned = 0; uint32_t s = R_EDI; printf_dump(LOG_DEBUG, "%p: Calling libc syscall 0x%02X (%d) %p %p %p %p %p\n", (void*)R_RIP, s, s, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); // check wrapper first @@ -643,7 +647,10 @@ uintptr_t EXPORT my_syscall(x64emu_t *emu) return (int)fchmodat((int)R_ESI, (void*)R_RDX, (mode_t)R_RCX, (int)R_R8d); #endif default: - printf_log(LOG_INFO, "Warning: Unsupported libc Syscall 0x%02X (%d)\n", s, s); + if(!(warned&(1<<s))) { + printf_log(LOG_INFO, "Warning: Unsupported libc Syscall 0x%02X (%d)\n", s, s); + warned|=(1<<s); + } errno = ENOSYS; return -1; } |