Implement svcGetDebugThreadParam

This commit is contained in:
Michael Scire 2018-06-25 02:50:35 -06:00
parent 8b2b12b454
commit b4f19b41e8
2 changed files with 26 additions and 0 deletions

View File

@ -131,6 +131,15 @@ typedef enum {
ProcessState_DebugSuspended=7, ///<Process execution suspended by debugger. ProcessState_DebugSuspended=7, ///<Process execution suspended by debugger.
} ProcessState; } ProcessState;
/// Debug Thread Parameters.
typedef enum {
DebugThreadParam_ActualPriority=0,
DebugThreadParam_State=1,
DebugThreadParam_IdealCore=2,
DebugThreadParam_CurrentCore=3,
DebugThreadParam_CoreMask=4,
} DebugThreadParam;
///@name Memory management ///@name Memory management
///@{ ///@{
@ -862,6 +871,14 @@ Result svcReadDebugProcessMemory(void* buffer, Handle debug, u64 addr, u64 size)
*/ */
Result svcWriteDebugProcessMemory(Handle debug, void* buffer, u64 addr, u64 size); Result svcWriteDebugProcessMemory(Handle debug, void* buffer, u64 addr, u64 size);
/**
* @brief Gets parameters from a thread in a debugging session.
* @return Result code.
* @note Syscall number 0x6D.
* @warning This is a privileged syscall. Use \ref envIsSyscallHinted to check if it is available.
*/
Result svcGetDebugThreadParam(u64* out_64, u32* out_32, Handle debug, u64 threadID, DebugThreadParam param);
///@} ///@}
///@name Miscellaneous ///@name Miscellaneous

View File

@ -468,6 +468,15 @@ SVC_BEGIN svcWriteDebugProcessMemory
ret ret
SVC_END SVC_END
SVC_BEGIN svcGetDebugThreadParam
stp x0, x1, [sp, #-16]!
svc 0x6D
ldp x3, x4, [sp], #16
str x1, [x3]
str w2, [x4]
ret
SVC_END
SVC_BEGIN svcGetSystemInfo SVC_BEGIN svcGetSystemInfo
str x0, [sp, #-16]! str x0, [sp, #-16]!
svc 0x6F svc 0x6F