diff --git a/DevTools/UserspaceEmulator/Emulator.cpp b/DevTools/UserspaceEmulator/Emulator.cpp index 42cc29c3e5..10d6734e29 100644 --- a/DevTools/UserspaceEmulator/Emulator.cpp +++ b/DevTools/UserspaceEmulator/Emulator.cpp @@ -349,7 +349,8 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3) return virt$clock_gettime(arg1, arg2); case SC_getrandom: return virt$getrandom(arg1, arg2, arg3); - + case SC_fork: + return virt$fork(); default: dbg() << "Unimplemented syscall: " << Syscall::to_string((Syscall::Function)function); dump_backtrace(); @@ -866,4 +867,9 @@ int Emulator::virt$ioctl(int fd, unsigned request, FlatPtr arg) TODO(); } +int Emulator::virt$fork() +{ + return fork(); +} + } diff --git a/DevTools/UserspaceEmulator/Emulator.h b/DevTools/UserspaceEmulator/Emulator.h index 2093e3d30f..6da4bb98f8 100644 --- a/DevTools/UserspaceEmulator/Emulator.h +++ b/DevTools/UserspaceEmulator/Emulator.h @@ -70,6 +70,7 @@ private: void setup_stack(const Vector& arguments, const Vector& environment); + int virt$fork(); int virt$get_dir_entries(int fd, FlatPtr buffer, ssize_t); int virt$ioctl(int fd, unsigned, FlatPtr); int virt$usleep(useconds_t);