diff --git a/DevTools/UserspaceEmulator/Emulator.cpp b/DevTools/UserspaceEmulator/Emulator.cpp index 23e2855515..c2f53396f2 100644 --- a/DevTools/UserspaceEmulator/Emulator.cpp +++ b/DevTools/UserspaceEmulator/Emulator.cpp @@ -226,6 +226,8 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3) dbgprintf("Syscall: %s (%x)\n", Syscall::to_string((Syscall::Function)function), function); #endif switch (function) { + case SC_usleep: + return virt$usleep(arg1); case SC_shbuf_create: return virt$shbuf_create(arg1, arg2); case SC_shbuf_allow_pid: @@ -327,6 +329,11 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3) } } +int Emulator::virt$usleep(useconds_t us) +{ + return syscall(SC_usleep, us); +} + int Emulator::virt$shbuf_create(int size, FlatPtr buffer) { u8* host_data = nullptr; diff --git a/DevTools/UserspaceEmulator/Emulator.h b/DevTools/UserspaceEmulator/Emulator.h index 78db94b0b3..4f94f85126 100644 --- a/DevTools/UserspaceEmulator/Emulator.h +++ b/DevTools/UserspaceEmulator/Emulator.h @@ -68,6 +68,7 @@ private: void setup_stack(const Vector& arguments); + int virt$usleep(useconds_t); int virt$shbuf_create(int size, FlatPtr buffer); int virt$shbuf_allow_pid(int, pid_t peer_pid); int virt$shbuf_allow_all(int);