summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-12-11 03:48:37 +0100
committerGitHub <noreply@github.com>2019-12-11 03:48:37 +0100
commit34f8881d3e0e4fa99e9bb2838be19abcbc033e4e (patch)
tree957d1b1e5889e4cfdbd23f578595761155b5e5de
parentMerge pull request #3211 from FernandoS27/depth-mode (diff)
parentkernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew (diff)
downloadyuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar.gz
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar.bz2
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar.lz
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar.xz
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.tar.zst
yuzu-34f8881d3e0e4fa99e9bb2838be19abcbc033e4e.zip
-rw-r--r--src/core/hle/kernel/svc.cpp15
-rw-r--r--src/core/hle/kernel/svc_wrap.h11
2 files changed, 24 insertions, 2 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index bd25de478..35ff26c39 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1781,6 +1781,17 @@ static ResultCode SignalToAddress(Core::System& system, VAddr address, u32 type,
return address_arbiter.SignalToAddress(address, signal_type, value, num_to_wake);
}
+static void KernelDebug([[maybe_unused]] Core::System& system,
+ [[maybe_unused]] u32 kernel_debug_type, [[maybe_unused]] u64 param1,
+ [[maybe_unused]] u64 param2, [[maybe_unused]] u64 param3) {
+ // Intentionally do nothing, as this does nothing in released kernel binaries.
+}
+
+static void ChangeKernelTraceState([[maybe_unused]] Core::System& system,
+ [[maybe_unused]] u32 trace_state) {
+ // Intentionally do nothing, as this does nothing in released kernel binaries.
+}
+
/// This returns the total CPU ticks elapsed since the CPU was powered-on
static u64 GetSystemTick(Core::System& system) {
LOG_TRACE(Kernel_SVC, "called");
@@ -2418,8 +2429,8 @@ static const FunctionDef SVC_Table[] = {
{0x39, nullptr, "Unknown"},
{0x3A, nullptr, "Unknown"},
{0x3B, nullptr, "Unknown"},
- {0x3C, nullptr, "DumpInfo"},
- {0x3D, nullptr, "DumpInfoNew"},
+ {0x3C, SvcWrap<KernelDebug>, "KernelDebug"},
+ {0x3D, SvcWrap<ChangeKernelTraceState>, "ChangeKernelTraceState"},
{0x3E, nullptr, "Unknown"},
{0x3F, nullptr, "Unknown"},
{0x40, nullptr, "CreateSession"},
diff --git a/src/core/hle/kernel/svc_wrap.h b/src/core/hle/kernel/svc_wrap.h
index c2d8d0dc3..9452e3b6f 100644
--- a/src/core/hle/kernel/svc_wrap.h
+++ b/src/core/hle/kernel/svc_wrap.h
@@ -311,6 +311,17 @@ void SvcWrap(Core::System& system) {
func(system);
}
+template <void func(Core::System&, u32)>
+void SvcWrap(Core::System& system) {
+ func(system, static_cast<u32>(Param(system, 0)));
+}
+
+template <void func(Core::System&, u32, u64, u64, u64)>
+void SvcWrap(Core::System& system) {
+ func(system, static_cast<u32>(Param(system, 0)), Param(system, 1), Param(system, 2),
+ Param(system, 3));
+}
+
template <void func(Core::System&, s64)>
void SvcWrap(Core::System& system) {
func(system, static_cast<s64>(Param(system, 0)));