Просмотр исходного кода

svc: Enable svcQueryProcessMemory

svcQueryProcessMemory is trivial to implement, given all the behavior
necessary for it is present, it just needs a handler for it.
Lioncash 7 лет назад
Родитель
Сommit
b79f086613
2 измененных файлов с 6 добавлено и 1 удалено
  1. 1 1
      src/core/hle/kernel/svc.cpp
  2. 5 0
      src/core/hle/kernel/svc_wrap.h

+ 1 - 1
src/core/hle/kernel/svc.cpp

@@ -1912,7 +1912,7 @@ static const FunctionDef SVC_Table[] = {
     {0x73, nullptr, "SetProcessMemoryPermission"},
     {0x74, nullptr, "MapProcessMemory"},
     {0x75, nullptr, "UnmapProcessMemory"},
-    {0x76, nullptr, "QueryProcessMemory"},
+    {0x76, SvcWrap<QueryProcessMemory>, "QueryProcessMemory"},
     {0x77, nullptr, "MapProcessCodeMemory"},
     {0x78, nullptr, "UnmapProcessCodeMemory"},
     {0x79, nullptr, "CreateProcess"},

+ 5 - 0
src/core/hle/kernel/svc_wrap.h

@@ -130,6 +130,11 @@ void SvcWrap() {
         func(Param(0), Param(1), static_cast<u32>(Param(3)), static_cast<u32>(Param(3))).raw);
 }
 
+template <ResultCode func(u64, u64, u32, u64)>
+void SvcWrap() {
+    FuncReturn(func(Param(0), Param(1), static_cast<u32>(Param(2)), Param(3)).raw);
+}
+
 template <ResultCode func(u32, u64, u32)>
 void SvcWrap() {
     FuncReturn(func(static_cast<u32>(Param(0)), Param(1), static_cast<u32>(Param(2))).raw);