diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-29 18:37:44 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-29 18:37:44 +0200 |
| commit | 19915ad238735a1c982dbbc8811f8780d1318463 (patch) | |
| tree | 35648fedf1645af414e48ecf9c974c84197f0eb3 /src | |
| parent | 5e8fb559558dc0424f89c8eac599348630fe8e45 (diff) | |
| download | box64-19915ad238735a1c982dbbc8811f8780d1318463.tar.gz box64-19915ad238735a1c982dbbc8811f8780d1318463.zip | |
Added syscall 57
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64syscall.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/emu/x64syscall.c b/src/emu/x64syscall.c index 6f6291c5..e366d8dd 100755 --- a/src/emu/x64syscall.c +++ b/src/emu/x64syscall.c @@ -75,6 +75,9 @@ scwrap_t syscallwrap[] = { #ifdef __NR_pipe { 22, __NR_pipe, 1}, #endif + #ifdef __NR_fork + { 57, __NR_fork, 0 }, // should wrap this one, because of the struct pt_regs (the only arg)? + #endif //{ 131, __NR_sigaltstack, 2}, // wrapped to use my_sigaltstack { 157, __NR_prctl, 5 }, // needs wrapping? { 186, __NR_gettid, 0 }, @@ -181,6 +184,11 @@ void EXPORT x64Syscall(x64emu_t *emu) R_EAX = (uint32_t)pipe((void*)R_RDI); break; #endif + #ifndef __NR_fork + case 57: + R_RAX = fork(); + break; + #endif case 131: // sys_sigaltstack R_EAX = (uint32_t)my_sigaltstack(emu, (void*)R_RDI, (void*)R_RSI); break; @@ -245,6 +253,10 @@ uintptr_t EXPORT my_syscall(x64emu_t *emu) case 22: return (uint32_t)pipe((void*)R_RSI); #endif + #ifndef __NR_fork + case 57: + return fork(); + #endif case 131: // sys_sigaltstack return (uint32_t)my_sigaltstack(emu, (void*)R_RSI, (void*)R_RDX); default: |