diff options
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64syscall.c | 23 | ||||
| -rw-r--r-- | src/emu/x86syscall_32.c | 23 |
2 files changed, 18 insertions, 28 deletions
diff --git a/src/emu/x64syscall.c b/src/emu/x64syscall.c index 1660c471..68fb0564 100644 --- a/src/emu/x64syscall.c +++ b/src/emu/x64syscall.c @@ -870,12 +870,11 @@ void EXPORT x64Syscall(x64emu_t *emu) break; #endif case 449: - #ifdef __NR_futex_waitv - if(BOX64ENV(futex_waitv)) - S_RAX = syscall(__NR_futex_waitv, R_RDI, R_RSI, R_RDX, R_R10, R_R8); - else + #if defined(__NR_futex_waitv) && !defined(BAD_SIGNAL) + S_RAX = syscall(__NR_futex_waitv, R_RDI, R_RSI, R_RDX, R_R10, R_R8); + #else + S_RAX = -ENOSYS; #endif - S_RAX = -ENOSYS; break; default: printf_log(LOG_INFO, "Warning: Unsupported Syscall 0x%02Xh (%d)\n", s, s); @@ -1156,16 +1155,12 @@ long EXPORT my_syscall(x64emu_t *emu) return faccessat(S_ESI, (void*)R_RDX, (mode_t)R_RCX, S_R8d); #endif case 449: - #ifdef __NR_futex_waitv - if(BOX64ENV(futex_waitv)) - return syscall(__NR_futex_waitv, R_RSI, R_RDX, R_RCX, R_R8, R_R9); - else + #if defined(__NR_futex_waitv) && !defined(BAD_SIGNAL) + return syscall(__NR_futex_waitv, R_RSI, R_RDX, R_RCX, R_R8, R_R9); + #else + errno = ENOSYS; + return -1; #endif - { - errno = ENOSYS; - return -1; - } - break; default: if(!(warned&(1<<s))) { printf_log(LOG_INFO, "Warning: Unsupported libc Syscall 0x%02X (%d)\n", s, s); diff --git a/src/emu/x86syscall_32.c b/src/emu/x86syscall_32.c index b4ed24d2..6efc27be 100644 --- a/src/emu/x86syscall_32.c +++ b/src/emu/x86syscall_32.c @@ -491,12 +491,11 @@ void EXPORT x86Syscall(x64emu_t *emu) } break; case 449: - #ifdef __NR_futex_waitv - if(BOX64ENV(futex_waitv)) - S_RAX = syscall(__NR_futex_waitv, R_EBX, R_ECX, R_EDX, R_ESI, R_EDI); - else + #if defined(__NR_futex_waitv) && !defined(BAD_SIGNAL) + S_RAX = syscall(__NR_futex_waitv, R_EBX, R_ECX, R_EDX, R_ESI, R_EDI); + #else + S_RAX = -ENOSYS; #endif - S_RAX = -ENOSYS; break; default: printf_log(LOG_INFO, "Warning: Unsupported Syscall 0x%02Xh (%d)\n", s, s); @@ -715,16 +714,12 @@ uint32_t EXPORT my32_syscall(x64emu_t *emu, uint32_t s, ptr_t* b) #endif #endif case 449: - #ifdef __NR_futex_waitv - if(BOX64ENV(futex_waitv)) - return syscall(__NR_futex_waitv, u32(0), u32(4), u32(8), u32(12), u32(16)); - else + #if defined(__NR_futex_waitv) && !defined(BAD_SIGNAL) + return syscall(__NR_futex_waitv, u32(0), u32(4), u32(8), u32(12), u32(16)); + #else + errno = ENOSYS; + return -1; #endif - { - errno = ENOSYS; - return -1; - } - break; default: if((s>>6)<sizeof(warned)/sizeof(warned[0])) { if(!(warned[s>>6]&(1<<(s&0x3f)))) { |