kernel/svc: Provide implementations for svcDumpInfo/svcDumpInfoNew
These are fairly trivial to implement, we can just do nothing. This also provides a spot for us to potentially dump out any relevant info in the future (e.g. for debugging purposes with homebrew, etc). While we're at it, we can also correct the names of both of these supervisor calls.
This commit is contained in:
parent
4bbb22a477
commit
67b8265bd6
2 changed files with 24 additions and 2 deletions
|
@ -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);
|
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
|
/// This returns the total CPU ticks elapsed since the CPU was powered-on
|
||||||
static u64 GetSystemTick(Core::System& system) {
|
static u64 GetSystemTick(Core::System& system) {
|
||||||
LOG_TRACE(Kernel_SVC, "called");
|
LOG_TRACE(Kernel_SVC, "called");
|
||||||
|
@ -2418,8 +2429,8 @@ static const FunctionDef SVC_Table[] = {
|
||||||
{0x39, nullptr, "Unknown"},
|
{0x39, nullptr, "Unknown"},
|
||||||
{0x3A, nullptr, "Unknown"},
|
{0x3A, nullptr, "Unknown"},
|
||||||
{0x3B, nullptr, "Unknown"},
|
{0x3B, nullptr, "Unknown"},
|
||||||
{0x3C, nullptr, "DumpInfo"},
|
{0x3C, SvcWrap<KernelDebug>, "KernelDebug"},
|
||||||
{0x3D, nullptr, "DumpInfoNew"},
|
{0x3D, SvcWrap<ChangeKernelTraceState>, "ChangeKernelTraceState"},
|
||||||
{0x3E, nullptr, "Unknown"},
|
{0x3E, nullptr, "Unknown"},
|
||||||
{0x3F, nullptr, "Unknown"},
|
{0x3F, nullptr, "Unknown"},
|
||||||
{0x40, nullptr, "CreateSession"},
|
{0x40, nullptr, "CreateSession"},
|
||||||
|
|
|
@ -311,6 +311,17 @@ void SvcWrap(Core::System& system) {
|
||||||
func(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)>
|
template <void func(Core::System&, s64)>
|
||||||
void SvcWrap(Core::System& system) {
|
void SvcWrap(Core::System& system) {
|
||||||
func(system, static_cast<s64>(Param(system, 0)));
|
func(system, static_cast<s64>(Param(system, 0)));
|
||||||
|
|
Loading…
Reference in a new issue