diff --git a/nx/include/switch/svc.h b/nx/include/switch/svc.h index c164c051..878dfd35 100644 --- a/nx/include/switch/svc.h +++ b/nx/include/switch/svc.h @@ -64,10 +64,14 @@ Result svcDetachDeviceAddressSpace(u64 device, Handle handle); Result svcMapDeviceAddressSpaceAligned(Handle handle, Handle proc_handle, u64 dev_addr, u64 dev_size, u64 map_addr, u64 perm); Result svcUnmapDeviceAddressSpace(Handle handle, Handle proc_handle, u64 map_addr, u64 map_size, u64 perm); Result svcDebugActiveProcess(Handle* debug, u64 processID); +Result svcBreakDebugProcess(Handle debug); +Result svcGetDebugEvent(u8* event_out, Handle* debug); Result svcContinueDebugEvent(Handle debug, u32 flags, u64 unk); +Result svcGetDebugThreadContext(u8* out, Handle debug, u64 threadID, u32 flags); Result svcGetProcessList(u32 *num_out, u64 *pids_out, u32 max_pids); Result svcQueryDebugProcessMemory(MemInfo* meminfo_ptr, u32* pageinfo, Handle debug, u64 addr); Result svcReadDebugProcessMemory(void* buffer, Handle debug, u64 addr, u64 size); +Result svcWriteDebugProcessMemory(Handle debug, void* buffer, u64 addr, u64 size); Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions); Result svcMapProcessMemory(void* dst, Handle proc, u64 src, u64 size); Result svcCreateProcess(Handle* out, void* proc_info, u32* caps, u64 cap_num); diff --git a/nx/source/kernel/svc.s b/nx/source/kernel/svc.s index 58e9f3da..94aff55a 100644 --- a/nx/source/kernel/svc.s +++ b/nx/source/kernel/svc.s @@ -248,6 +248,16 @@ SVC_BEGIN svcDebugActiveProcess ret SVC_END +SVC_BEGIN svcBreakDebugProcess + svc 0x61 + ret +SVC_END + +SVC_BEGIN svcGetDebugEvent + svc 0x63 + ret +SVC_END + SVC_BEGIN svcContinueDebugEvent svc 0x64 ret @@ -261,6 +271,11 @@ SVC_BEGIN svcGetProcessList ret SVC_END +SVC_BEGIN svcGetDebugThreadContext + svc 0x67 + ret +SVC_END + SVC_BEGIN svcQueryDebugProcessMemory str x1, [sp, #-16]! svc 0x69 @@ -274,6 +289,11 @@ SVC_BEGIN svcReadDebugProcessMemory ret SVC_END +SVC_BEGIN svcWriteDebugProcessMemory + svc 0x6B + ret +SVC_END + SVC_BEGIN svcManageNamedPort str x0, [sp, #-16]! svc 0x71