From 480906fe1b31a8830aec80fbea04ec941894003f Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 2 Jan 2018 20:40:30 -0500 Subject: hle: Move SVC code to kernel namespace. --- src/core/hle/function_wrappers.h | 155 --------------------------------------- 1 file changed, 155 deletions(-) delete mode 100644 src/core/hle/function_wrappers.h (limited to 'src/core/hle/function_wrappers.h') diff --git a/src/core/hle/function_wrappers.h b/src/core/hle/function_wrappers.h deleted file mode 100644 index df2c3e843..000000000 --- a/src/core/hle/function_wrappers.h +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2017 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "common/common_types.h" -#include "core/arm/arm_interface.h" -#include "core/core.h" -#include "core/hle/result.h" -#include "core/hle/svc.h" -#include "core/memory.h" - -namespace HLE { - -#define PARAM(n) Core::CPU().GetReg(n) - -/** - * HLE a function return from the current ARM userland process - * @param res Result to return - */ -static inline void FuncReturn(u64 res) { - Core::CPU().SetReg(0, res); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// -// Function wrappers that return type ResultCode - -template -void Wrap() { - FuncReturn(func(PARAM(0)).raw); -} - -template -void Wrap() { - FuncReturn(func((u32)PARAM(0)).raw); -} - -template -void Wrap() { - FuncReturn(func((u32)PARAM(0), (u32)PARAM(1)).raw); -} - -template -void Wrap() { - u32 param_1 = 0; - u32 retval = func(¶m_1, (u32)PARAM(1)).raw; - Core::CPU().SetReg(1, param_1); - FuncReturn(retval); -} - -template -void Wrap() { - u32 param_1 = 0; - u32 retval = func(¶m_1, PARAM(1)).raw; - Core::CPU().SetReg(1, param_1); - FuncReturn(retval); -} - -template -void Wrap() { - FuncReturn(func(PARAM(0), (u32)PARAM(1)).raw); -} - -template -void Wrap() { - u64 param_1 = 0; - u32 retval = func(¶m_1, PARAM(1)).raw; - Core::CPU().SetReg(1, param_1); - FuncReturn(retval); -} - -template -void Wrap() { - FuncReturn(func((u32)PARAM(0), PARAM(1), (u32)PARAM(2)).raw); -} - -template -void Wrap() { - FuncReturn(func(PARAM(0), PARAM(1), PARAM(2)).raw); -} - -template -void Wrap() { - FuncReturn(func(PARAM(1), PARAM(2), (s64)PARAM(3)).raw); -} - -template -void Wrap() { - u64 param_1 = 0; - u32 retval = func(¶m_1, PARAM(1), PARAM(2), PARAM(3)).raw; - Core::CPU().SetReg(1, param_1); - FuncReturn(retval); -} - -template -void Wrap() { - u32 param_1 = 0; - u32 retval = - func(¶m_1, PARAM(1), PARAM(2), PARAM(3), (u32)PARAM(4), (s32)(PARAM(5) & 0xFFFFFFFF)) - .raw; - Core::CPU().SetReg(1, param_1); - FuncReturn(retval); -} - -template -void Wrap() { - MemoryInfo memory_info = {}; - PageInfo page_info = {}; - u32 retval = func(&memory_info, &page_info, PARAM(2)).raw; - - Memory::Write64(PARAM(0), memory_info.base_address); - Memory::Write64(PARAM(0) + 8, memory_info.size); - Memory::Write32(PARAM(0) + 16, memory_info.type); - Memory::Write32(PARAM(0) + 20, memory_info.attributes); - Memory::Write32(PARAM(0) + 24, memory_info.permission); - - FuncReturn(retval); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// -// Function wrappers that return type u32 - -template -void Wrap() { - FuncReturn(func()); -} - -//////////////////////////////////////////////////////////////////////////////////////////////////// -/// Function wrappers that return type void - -template -void Wrap() { - func(); -} - -template -void Wrap() { - func((s64)PARAM(0)); -} - -template -void Wrap() { - func(PARAM(0), (s32)(PARAM(1) & 0xFFFFFFFF)); -} - -template -void Wrap() { - func(PARAM(0), PARAM(1), PARAM(2)); -} - -#undef PARAM -#undef FuncReturn - -} // namespace HLE -- cgit v1.2.3