diff options
| author | 2018-12-12 13:42:21 -0500 | |
|---|---|---|
| committer | 2018-12-12 15:45:05 -0500 | |
| commit | b79f08661337f22d46d519218c1cc6c013a14d2c (patch) | |
| tree | b4c996d3d1ff9d8cd1b51e1416a7df4dd4f2a7a1 | |
| parent | svc: Write out the complete MemoryInfo structure in QueryProcessMemory (diff) | |
| download | yuzu-b79f08661337f22d46d519218c1cc6c013a14d2c.tar.gz yuzu-b79f08661337f22d46d519218c1cc6c013a14d2c.tar.xz yuzu-b79f08661337f22d46d519218c1cc6c013a14d2c.zip | |
svc: Enable svcQueryProcessMemory
svcQueryProcessMemory is trivial to implement, given all the behavior
necessary for it is present, it just needs a handler for it.
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/svc_wrap.h | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 8b51aa2c7..c1100f197 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -1912,7 +1912,7 @@ static const FunctionDef SVC_Table[] = { | |||
| 1912 | {0x73, nullptr, "SetProcessMemoryPermission"}, | 1912 | {0x73, nullptr, "SetProcessMemoryPermission"}, |
| 1913 | {0x74, nullptr, "MapProcessMemory"}, | 1913 | {0x74, nullptr, "MapProcessMemory"}, |
| 1914 | {0x75, nullptr, "UnmapProcessMemory"}, | 1914 | {0x75, nullptr, "UnmapProcessMemory"}, |
| 1915 | {0x76, nullptr, "QueryProcessMemory"}, | 1915 | {0x76, SvcWrap<QueryProcessMemory>, "QueryProcessMemory"}, |
| 1916 | {0x77, nullptr, "MapProcessCodeMemory"}, | 1916 | {0x77, nullptr, "MapProcessCodeMemory"}, |
| 1917 | {0x78, nullptr, "UnmapProcessCodeMemory"}, | 1917 | {0x78, nullptr, "UnmapProcessCodeMemory"}, |
| 1918 | {0x79, nullptr, "CreateProcess"}, | 1918 | {0x79, nullptr, "CreateProcess"}, |
diff --git a/src/core/hle/kernel/svc_wrap.h b/src/core/hle/kernel/svc_wrap.h index f03b5438b..b762fd93e 100644 --- a/src/core/hle/kernel/svc_wrap.h +++ b/src/core/hle/kernel/svc_wrap.h | |||
| @@ -130,6 +130,11 @@ void SvcWrap() { | |||
| 130 | func(Param(0), Param(1), static_cast<u32>(Param(3)), static_cast<u32>(Param(3))).raw); | 130 | func(Param(0), Param(1), static_cast<u32>(Param(3)), static_cast<u32>(Param(3))).raw); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | template <ResultCode func(u64, u64, u32, u64)> | ||
| 134 | void SvcWrap() { | ||
| 135 | FuncReturn(func(Param(0), Param(1), static_cast<u32>(Param(2)), Param(3)).raw); | ||
| 136 | } | ||
| 137 | |||
| 133 | template <ResultCode func(u32, u64, u32)> | 138 | template <ResultCode func(u32, u64, u32)> |
| 134 | void SvcWrap() { | 139 | void SvcWrap() { |
| 135 | FuncReturn(func(static_cast<u32>(Param(0)), Param(1), static_cast<u32>(Param(2))).raw); | 140 | FuncReturn(func(static_cast<u32>(Param(0)), Param(1), static_cast<u32>(Param(2))).raw); |