Преглед изворни кода

UserspaceEmulator: Add the usleep() syscall

Andreas Kling пре 5 година
родитељ
комит
b17d175379
2 измењених фајлова са 8 додато и 0 уклоњено
  1. 7 0
      DevTools/UserspaceEmulator/Emulator.cpp
  2. 1 0
      DevTools/UserspaceEmulator/Emulator.h

+ 7 - 0
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;

+ 1 - 0
DevTools/UserspaceEmulator/Emulator.h

@@ -68,6 +68,7 @@ private:
 
     void setup_stack(const Vector<String>& 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);