kern: SvcGetDebugEventInfo64From32

This commit is contained in:
Michael Scire 2020-07-31 00:36:33 -07:00 committed by SciresM
parent c9f8252577
commit 85f533e6c4
2 changed files with 10 additions and 2 deletions

View file

@ -58,6 +58,9 @@ namespace ams::kern {
private: private:
void PushDebugEvent(ams::svc::DebugEvent event, uintptr_t param0 = 0, uintptr_t param1 = 0, uintptr_t param2 = 0, uintptr_t param3 = 0, uintptr_t param4 = 0); void PushDebugEvent(ams::svc::DebugEvent event, uintptr_t param0 = 0, uintptr_t param1 = 0, uintptr_t param2 = 0, uintptr_t param3 = 0, uintptr_t param4 = 0);
void EnqueueDebugEventInfo(KEventInfo *info); void EnqueueDebugEventInfo(KEventInfo *info);
template<typename T> requires (std::same_as<T, ams::svc::lp64::DebugEventInfo> || std::same_as<T, ams::svc::ilp32::DebugEventInfo>)
Result GetDebugEventInfoImpl(T *out);
public: public:
virtual void OnFinalizeSynchronizationObject() override; virtual void OnFinalizeSynchronizationObject() override;
virtual bool IsSignaled() const override; virtual bool IsSignaled() const override;

View file

@ -690,7 +690,8 @@ namespace ams::kern {
return this->process; return this->process;
} }
Result KDebugBase::GetDebugEventInfo(ams::svc::lp64::DebugEventInfo *out) { template<typename T> requires (std::same_as<T, ams::svc::lp64::DebugEventInfo> || std::same_as<T, ams::svc::ilp32::DebugEventInfo>)
Result KDebugBase::GetDebugEventInfoImpl(T *out) {
/* Get the attached process. */ /* Get the attached process. */
KScopedAutoObject process = this->GetProcess(); KScopedAutoObject process = this->GetProcess();
R_UNLESS(process.IsNotNull(), svc::ResultProcessTerminated()); R_UNLESS(process.IsNotNull(), svc::ResultProcessTerminated());
@ -801,8 +802,12 @@ namespace ams::kern {
return ResultSuccess(); return ResultSuccess();
} }
Result KDebugBase::GetDebugEventInfo(ams::svc::lp64::DebugEventInfo *out) {
return this->GetDebugEventInfoImpl(out);
}
Result KDebugBase::GetDebugEventInfo(ams::svc::ilp32::DebugEventInfo *out) { Result KDebugBase::GetDebugEventInfo(ams::svc::ilp32::DebugEventInfo *out) {
MESOSPHERE_UNIMPLEMENTED(); return this->GetDebugEventInfoImpl(out);
} }
void KDebugBase::OnFinalizeSynchronizationObject() { void KDebugBase::OnFinalizeSynchronizationObject() {