diff options
author | Subv <subv2112@gmail.com> | 2017-06-21 02:27:20 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2017-06-26 06:38:28 +0200 |
commit | 88c93a7436ee744d61abaa7a3fb0fc59982b0a06 (patch) | |
tree | 19a06ba1030dc8a9a92b117fa18f841d8673d380 /src/core/hle/function_wrappers.h | |
parent | Kernel/ServerSession: Keep track of which threads have issued sync requests. (diff) | |
download | yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar.gz yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar.bz2 yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar.lz yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar.xz yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.tar.zst yuzu-88c93a7436ee744d61abaa7a3fb0fc59982b0a06.zip |
Diffstat (limited to 'src/core/hle/function_wrappers.h')
-rw-r--r-- | src/core/hle/function_wrappers.h | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/core/hle/function_wrappers.h b/src/core/hle/function_wrappers.h index 18b6e7017..2abdfe1b3 100644 --- a/src/core/hle/function_wrappers.h +++ b/src/core/hle/function_wrappers.h @@ -16,9 +16,6 @@ namespace HLE { #define PARAM(n) Core::CPU().GetReg(n) -/// An invalid result code that is meant to be overwritten when a thread resumes from waiting -static const ResultCode RESULT_INVALID(0xDEADC0DE); - /** * HLE a function return from the current ARM11 userland process * @param res Result to return @@ -68,10 +65,18 @@ void Wrap() { (PARAM(3) != 0), (((s64)PARAM(4) << 32) | PARAM(0))) .raw; - if (retval != RESULT_INVALID.raw) { - Core::CPU().SetReg(1, (u32)param_1); - FuncReturn(retval); - } + Core::CPU().SetReg(1, (u32)param_1); + FuncReturn(retval); +} + +template <ResultCode func(s32*, u32*, s32, u32)> +void Wrap() { + s32 param_1 = 0; + u32 retval = + func(¶m_1, (Kernel::Handle*)Memory::GetPointer(PARAM(1)), (s32)PARAM(2), PARAM(3)).raw; + + Core::CPU().SetReg(1, (u32)param_1); + FuncReturn(retval); } template <ResultCode func(u32, u32, u32, u32, s64)> @@ -92,9 +97,7 @@ template <ResultCode func(u32, s64)> void Wrap() { s32 retval = func(PARAM(0), (((s64)PARAM(3) << 32) | PARAM(2))).raw; - if (retval != RESULT_INVALID.raw) { - FuncReturn(retval); - } + FuncReturn(retval); } template <ResultCode func(MemoryInfo*, PageInfo*, u32)> |