mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-24 08:02:48 -06:00
HLE: Move SVC handlers to the Kernel namespace
This commit is contained in:
parent
ad71e23f23
commit
21188f5683
5 changed files with 209 additions and 281 deletions
|
@ -54,7 +54,7 @@ static Dynarmic::UserCallbacks GetUserCallbacks(
|
|||
Dynarmic::UserCallbacks user_callbacks{};
|
||||
user_callbacks.InterpreterFallback = &InterpreterFallback;
|
||||
user_callbacks.user_arg = static_cast<void*>(interpreter_state.get());
|
||||
user_callbacks.CallSVC = &SVC::CallSVC;
|
||||
user_callbacks.CallSVC = &Kernel::CallSVC;
|
||||
user_callbacks.memory.IsReadOnlyMemory = &IsReadOnlyMemory;
|
||||
user_callbacks.memory.ReadCode = &Memory::Read32;
|
||||
user_callbacks.memory.Read8 = &Memory::Read8;
|
||||
|
|
|
@ -3863,7 +3863,7 @@ SWI_INST : {
|
|||
cpu->NumInstrsToExecute =
|
||||
num_instrs >= cpu->NumInstrsToExecute ? 0 : cpu->NumInstrsToExecute - num_instrs;
|
||||
num_instrs = 0;
|
||||
SVC::CallSVC(inst_cream->num & 0xFFFF);
|
||||
Kernel::CallSVC(inst_cream->num & 0xFFFF);
|
||||
}
|
||||
|
||||
cpu->Reg[15] += cpu->GetInstructionSize();
|
||||
|
|
|
@ -99,10 +99,10 @@ void Wrap() {
|
|||
FuncReturn(retval);
|
||||
}
|
||||
|
||||
template <ResultCode func(MemoryInfo*, PageInfo*, u32)>
|
||||
template <ResultCode func(Kernel::MemoryInfo*, Kernel::PageInfo*, u32)>
|
||||
void Wrap() {
|
||||
MemoryInfo memory_info = {};
|
||||
PageInfo page_info = {};
|
||||
Kernel::MemoryInfo memory_info = {};
|
||||
Kernel::PageInfo page_info = {};
|
||||
u32 retval = func(&memory_info, &page_info, PARAM(2)).raw;
|
||||
Core::CPU().SetReg(1, memory_info.base_address);
|
||||
Core::CPU().SetReg(2, memory_info.size);
|
||||
|
@ -112,10 +112,10 @@ void Wrap() {
|
|||
FuncReturn(retval);
|
||||
}
|
||||
|
||||
template <ResultCode func(MemoryInfo*, PageInfo*, Kernel::Handle, u32)>
|
||||
template <ResultCode func(Kernel::MemoryInfo*, Kernel::PageInfo*, Kernel::Handle, u32)>
|
||||
void Wrap() {
|
||||
MemoryInfo memory_info = {};
|
||||
PageInfo page_info = {};
|
||||
Kernel::MemoryInfo memory_info = {};
|
||||
Kernel::PageInfo page_info = {};
|
||||
u32 retval = func(&memory_info, &page_info, PARAM(2), PARAM(3)).raw;
|
||||
Core::CPU().SetReg(1, memory_info.base_address);
|
||||
Core::CPU().SetReg(2, memory_info.size);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,8 +6,7 @@
|
|||
|
||||
#include "common/common_types.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// SVC types
|
||||
namespace Kernel {
|
||||
|
||||
struct MemoryInfo {
|
||||
u32 base_address;
|
||||
|
@ -20,11 +19,6 @@ struct PageInfo {
|
|||
u32 flags;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Namespace SVC
|
||||
|
||||
namespace SVC {
|
||||
|
||||
/// Values accepted by svcGetSystemInfo's type parameter.
|
||||
enum class SystemInfoType {
|
||||
/**
|
||||
|
@ -56,4 +50,4 @@ enum class SystemInfoMemUsageRegion {
|
|||
|
||||
void CallSVC(u32 immediate);
|
||||
|
||||
} // namespace
|
||||
} // namespace Kernel
|
||||
|
|
Loading…
Reference in a new issue