mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-27 20:14:17 +01:00
- added SVC stubs for QueryMemory and GetThreadId
- added SVC structs MemoryInfo and PageInfo
This commit is contained in:
parent
4910b6f336
commit
4fba4f36bf
@ -734,6 +734,11 @@ template<int func(void*, u32)> void WrapI_VU(){
|
|||||||
RETURN(retval);
|
RETURN(retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<int func(void*, void*, u32)> void WrapI_VVU(){
|
||||||
|
u32 retval = func(Memory::GetPointer(PARAM(0)), Memory::GetPointer(PARAM(1)), PARAM(2));
|
||||||
|
RETURN(retval);
|
||||||
|
}
|
||||||
|
|
||||||
template<int func(void*, u32, void*, int)> void WrapI_VUVI(){
|
template<int func(void*, u32, void*, int)> void WrapI_VUVI(){
|
||||||
u32 retval = func(Memory::GetPointer(PARAM(0)), PARAM(1), Memory::GetPointer(PARAM(2)), PARAM(3));
|
u32 retval = func(Memory::GetPointer(PARAM(0)), PARAM(1), Memory::GetPointer(PARAM(2)), PARAM(3));
|
||||||
RETURN(retval);
|
RETURN(retval);
|
||||||
|
@ -169,10 +169,22 @@ Result ReleaseMutex(Handle handle) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result GetThreadId(void* thread_id, u32 thread) {
|
||||||
|
DEBUG_LOG(SVC, "(UNIMPLEMENTED) GetThreadId called thread=0x%08X", thread);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Result QueryMemory(void *_info, void *_out, u32 addr) {
|
||||||
|
MemoryInfo* info = (MemoryInfo*) _info;
|
||||||
|
PageInfo* out = (PageInfo*) _out;
|
||||||
|
DEBUG_LOG(SVC, "(UNIMPLEMENTED) QueryMemory called addr=0x%08X", addr);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const HLE::FunctionDef Syscall_Table[] = {
|
const HLE::FunctionDef Syscall_Table[] = {
|
||||||
{0x00, NULL, "Unknown"},
|
{0x00, NULL, "Unknown"},
|
||||||
{0x01, WrapI_VUUUUU<ControlMemory>, "ControlMemory"},
|
{0x01, WrapI_VUUUUU<ControlMemory>, "ControlMemory"},
|
||||||
{0x02, NULL, "QueryMemory"},
|
{0x02, WrapI_VVU<QueryMemory>, "QueryMemory"},
|
||||||
{0x03, NULL, "ExitProcess"},
|
{0x03, NULL, "ExitProcess"},
|
||||||
{0x04, NULL, "GetProcessAffinityMask"},
|
{0x04, NULL, "GetProcessAffinityMask"},
|
||||||
{0x05, NULL, "SetProcessAffinityMask"},
|
{0x05, NULL, "SetProcessAffinityMask"},
|
||||||
@ -225,7 +237,7 @@ const HLE::FunctionDef Syscall_Table[] = {
|
|||||||
{0x34, NULL, "OpenThread"},
|
{0x34, NULL, "OpenThread"},
|
||||||
{0x35, NULL, "GetProcessId"},
|
{0x35, NULL, "GetProcessId"},
|
||||||
{0x36, NULL, "GetProcessIdOfThread"},
|
{0x36, NULL, "GetProcessIdOfThread"},
|
||||||
{0x37, NULL, "GetThreadId"},
|
{0x37, WrapI_VU<GetThreadId>, "GetThreadId"},
|
||||||
{0x38, WrapI_VU<GetResourceLimit>, "GetResourceLimit"},
|
{0x38, WrapI_VU<GetResourceLimit>, "GetResourceLimit"},
|
||||||
{0x39, NULL, "GetResourceLimitLimitValues"},
|
{0x39, NULL, "GetResourceLimitLimitValues"},
|
||||||
{0x3A, WrapI_VUVI<GetResourceLimitCurrentValues>, "GetResourceLimitCurrentValues"},
|
{0x3A, WrapI_VUVI<GetResourceLimitCurrentValues>, "GetResourceLimitCurrentValues"},
|
||||||
|
@ -9,6 +9,17 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// SVC structures
|
// SVC structures
|
||||||
|
|
||||||
|
struct MemoryInfo {
|
||||||
|
u32 base_address;
|
||||||
|
u32 size;
|
||||||
|
u32 permission;
|
||||||
|
u32 state;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PageInfo {
|
||||||
|
u32 flags;
|
||||||
|
};
|
||||||
|
|
||||||
struct ThreadContext {
|
struct ThreadContext {
|
||||||
u32 cpu_registers[13];
|
u32 cpu_registers[13];
|
||||||
u32 sp;
|
u32 sp;
|
||||||
|
Loading…
Reference in New Issue
Block a user