diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/svc_wrap.h | 56 |
1 files changed, 42 insertions, 14 deletions
diff --git a/src/core/hle/kernel/svc_wrap.h b/src/core/hle/kernel/svc_wrap.h index 96afd544b..913b16494 100644 --- a/src/core/hle/kernel/svc_wrap.h +++ b/src/core/hle/kernel/svc_wrap.h @@ -154,15 +154,28 @@ void SvcWrap64(Core::System& system) { FuncReturn(system, retval); } +// Used by GetResourceLimitLimitValue. +template <ResultCode func(Core::System&, u64*, Handle, LimitableResource)> +void SvcWrap64(Core::System& system) { + u64 param_1 = 0; + const u32 retval = func(system, ¶m_1, static_cast<Handle>(Param(system, 1)), + static_cast<LimitableResource>(Param(system, 2))) + .raw; + + system.CurrentArmInterface().SetReg(1, param_1); + FuncReturn(system, retval); +} + template <ResultCode func(Core::System&, u32, u64)> void SvcWrap64(Core::System& system) { FuncReturn(system, func(system, static_cast<u32>(Param(system, 0)), Param(system, 1)).raw); } -template <ResultCode func(Core::System&, u32, u32, u64)> +// Used by SetResourceLimitLimitValue +template <ResultCode func(Core::System&, Handle, LimitableResource, u64)> void SvcWrap64(Core::System& system) { - FuncReturn(system, func(system, static_cast<u32>(Param(system, 0)), - static_cast<u32>(Param(system, 1)), Param(system, 2)) + FuncReturn(system, func(system, static_cast<Handle>(Param(system, 0)), + static_cast<LimitableResource>(Param(system, 1)), Param(system, 2)) .raw); } @@ -219,10 +232,11 @@ void SvcWrap64(Core::System& system) { func(system, Param(system, 0), Param(system, 1), static_cast<u32>(Param(system, 2))).raw); } -template <ResultCode func(Core::System&, u32, u64, u64, u32)> +// Used by MapSharedMemory +template <ResultCode func(Core::System&, Handle, u64, u64, Svc::MemoryPermission)> void SvcWrap64(Core::System& system) { - FuncReturn(system, func(system, static_cast<u32>(Param(system, 0)), Param(system, 1), - Param(system, 2), static_cast<u32>(Param(system, 3))) + FuncReturn(system, func(system, static_cast<Handle>(Param(system, 0)), Param(system, 1), + Param(system, 2), static_cast<Svc::MemoryPermission>(Param(system, 3))) .raw); } @@ -252,11 +266,13 @@ void SvcWrap64(Core::System& system) { .raw); } -template <ResultCode func(Core::System&, u64*, u64, u64, u64)> +// Used by GetInfo +template <ResultCode func(Core::System&, u64*, u64, Handle, u64)> void SvcWrap64(Core::System& system) { u64 param_1 = 0; - const u32 retval = - func(system, ¶m_1, Param(system, 1), Param(system, 2), Param(system, 3)).raw; + const u32 retval = func(system, ¶m_1, Param(system, 1), + static_cast<Handle>(Param(system, 2)), Param(system, 3)) + .raw; system.CurrentArmInterface().SetReg(1, param_1); FuncReturn(system, retval); @@ -273,11 +289,12 @@ void SvcWrap64(Core::System& system) { FuncReturn(system, retval); } -template <ResultCode func(Core::System&, u32*, u64, u64, u32)> +// Used by CreateTransferMemory +template <ResultCode func(Core::System&, Handle*, u64, u64, Svc::MemoryPermission)> void SvcWrap64(Core::System& system) { u32 param_1 = 0; const u32 retval = func(system, ¶m_1, Param(system, 1), Param(system, 2), - static_cast<u32>(Param(system, 3))) + static_cast<Svc::MemoryPermission>(Param(system, 3))) .raw; system.CurrentArmInterface().SetReg(1, param_1); @@ -537,6 +554,16 @@ void SvcWrap32(Core::System& system) { FuncReturn(system, retval); } +// Used by MapSharedMemory32 +template <ResultCode func(Core::System&, Handle, u32, u32, Svc::MemoryPermission)> +void SvcWrap32(Core::System& system) { + const u32 retval = func(system, static_cast<Handle>(Param(system, 0)), + static_cast<u32>(Param(system, 1)), static_cast<u32>(Param(system, 2)), + static_cast<Svc::MemoryPermission>(Param(system, 3))) + .raw; + FuncReturn(system, retval); +} + // Used by SetThreadCoreMask32 template <ResultCode func(Core::System&, Handle, s32, u32, u32)> void SvcWrap32(Core::System& system) { @@ -586,11 +613,12 @@ void SvcWrap32(Core::System& system) { } // Used by CreateTransferMemory32 -template <ResultCode func(Core::System&, Handle*, u32, u32, u32)> +template <ResultCode func(Core::System&, Handle*, u32, u32, Svc::MemoryPermission)> void SvcWrap32(Core::System& system) { Handle handle = 0; - const u32 retval = - func(system, &handle, Param32(system, 1), Param32(system, 2), Param32(system, 3)).raw; + const u32 retval = func(system, &handle, Param32(system, 1), Param32(system, 2), + static_cast<Svc::MemoryPermission>(Param32(system, 3))) + .raw; system.CurrentArmInterface().SetReg(1, handle); FuncReturn(system, retval); } |