summaryrefslogtreecommitdiffstats
path: root/src/core/hle/function_wrappers.h
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2017-06-21 02:27:20 +0200
committerSubv <subv2112@gmail.com>2017-06-26 06:38:28 +0200
commit88c93a7436ee744d61abaa7a3fb0fc59982b0a06 (patch)
tree19a06ba1030dc8a9a92b117fa18f841d8673d380 /src/core/hle/function_wrappers.h
parentKernel/ServerSession: Keep track of which threads have issued sync requests. (diff)
downloadyuzu-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 '')
-rw-r--r--src/core/hle/function_wrappers.h23
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(&param_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)>