diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/function_wrappers.h | 7 | ||||
| -rw-r--r-- | src/core/hle/syscall.cpp | 16 | 
2 files changed, 19 insertions, 4 deletions
| diff --git a/src/core/hle/function_wrappers.h b/src/core/hle/function_wrappers.h index 61790e5a3..24cc74fc6 100644 --- a/src/core/hle/function_wrappers.h +++ b/src/core/hle/function_wrappers.h @@ -750,6 +750,11 @@ template<int func(void*, u32, u32, u32, u32, u32)> void WrapI_VUUUUU(){  }  template<int func(u32, s64)> void WrapI_US64() { -    int retval = func(PARAM(0), PARAM64(2)); +    int retval = func(PARAM(0), PARAM64(1)); +    RETURN(retval); +} + +template<int func(void*, void*, u32, u32, s64)> void WrapI_VVUUS64() { +    int retval = func(Memory::GetPointer(PARAM(0)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), PARAM(4));      RETURN(retval);  } diff --git a/src/core/hle/syscall.cpp b/src/core/hle/syscall.cpp index 0c78b19fb..728679378 100644 --- a/src/core/hle/syscall.cpp +++ b/src/core/hle/syscall.cpp @@ -104,10 +104,20 @@ Result CloseHandle(Handle handle) {  }  /// Wait for a handle to synchronize, timeout after the specified nanoseconds -Result WaitSynchronization1(Handle handle, s64 nanoseconds) { +Result WaitSynchronization1(Handle handle, s64 nano_seconds) {      // ImplementMe      DEBUG_LOG(SVC, "(UNIMPLEMENTED) WaitSynchronization1 called handle=0x%08X, nanoseconds=%d",  -        handle, nanoseconds); +        handle, nano_seconds); +    return 0; +} + +/// Wait for the given handles to synchronize, timeout after the specified nanoseconds +Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wait_all, s64 nano_seconds) { +    s32* out = (s32*)_out; +    Handle* handles = (Handle*)_handles; +    // ImplementMe +    DEBUG_LOG(SVC, "(UNIMPLEMENTED) WaitSynchronizationN called handle_count=%d, wait_all=%d, nanoseconds=%d",  +        handle_count, wait_all, nano_seconds);          return 0;  } @@ -226,7 +236,7 @@ const HLE::FunctionDef Syscall_Table[] = {      {0x22,  NULL,                                       "ArbitrateAddress"},      {0x23,  WrapI_U<CloseHandle>,                       "CloseHandle"},      {0x24,  WrapI_US64<WaitSynchronization1>,           "WaitSynchronization1"}, -    {0x25,  NULL,                                       "WaitSynchronizationN"}, +    {0x25,  WrapI_VVUUS64<WaitSynchronizationN>,        "WaitSynchronizationN"},      {0x26,  NULL,                                       "SignalAndWait"},      {0x27,  NULL,                                       "DuplicateHandle"},      {0x28,  NULL,                                       "GetSystemTick"}, | 
