Changes

929 bytes added ,  01:35, 14 October 2013
no edit summary
Line 3: Line 3:  
|-
 
|-
 
!  Id
 
!  Id
 +
!  NATIVE_FIRM ARM11 kernel notes
 +
!  Enabled for the TWL_FIRM ARM11 kernel
 
!  Description
 
!  Description
 
|-
 
|-
 
| 0x1  
 
| 0x1  
 +
|
 +
| No
 
| Result ControlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions) (outaddr is usually the same as the input addr0)
 
| Result ControlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions) (outaddr is usually the same as the input addr0)
 
|-
 
|-
 
| 0x2  
 
| 0x2  
 +
|
 +
| No
 
| Result  QueryMemory(MemoryInfo* info, PageInfo* out, u32 Addr)
 
| Result  QueryMemory(MemoryInfo* info, PageInfo* out, u32 Addr)
 
|-
 
|-
 
| 0x3  
 
| 0x3  
 +
|
 +
| No
 
| void ExitProcess(void)
 
| void ExitProcess(void)
 
|-
 
|-
 
| 0x4  
 
| 0x4  
 +
|
 +
| No
 
| Result  GetProcessAffinityMask(u8* affinitymask, Handle process, s32 processorcount)
 
| Result  GetProcessAffinityMask(u8* affinitymask, Handle process, s32 processorcount)
 
|-
 
|-
 
| 0x5  
 
| 0x5  
 +
|
 +
| No
 
| Result SetProcessAffinityMask(Handle process, u8* affinitymask, s32 processorcount)
 
| Result SetProcessAffinityMask(Handle process, u8* affinitymask, s32 processorcount)
 
|-
 
|-
 
| 0x6  
 
| 0x6  
 +
|
 +
| No
 
| Result GetProcessIdealProcessor(s32 *idealprocessor, Handle process)
 
| Result GetProcessIdealProcessor(s32 *idealprocessor, Handle process)
 
|-
 
|-
 
| 0x7  
 
| 0x7  
 +
|
 +
| No
 
| Result SetProcessIdealProcessor(Handle process, s32 idealprocessor)
 
| Result SetProcessIdealProcessor(Handle process, s32 idealprocessor)
 
|-
 
|-
 
| 0x8  
 
| 0x8  
 +
|
 +
| Yes
 
| Result [[#CreateThread|CreateThread]](Handle* thread, func entrypoint, u32 arg, u32 stacktop, s32 threadpriority, s32 processorid)
 
| Result [[#CreateThread|CreateThread]](Handle* thread, func entrypoint, u32 arg, u32 stacktop, s32 threadpriority, s32 processorid)
 
|-
 
|-
 
| 0x9  
 
| 0x9  
 +
|
 +
| Yes
 
| void ExitThread(void)
 
| void ExitThread(void)
 
|-
 
|-
 
| 0xA  
 
| 0xA  
 +
|
 +
| Yes
 
| void SleepThread(s64 nanoseconds)
 
| void SleepThread(s64 nanoseconds)
 
|-
 
|-
 
| 0xB  
 
| 0xB  
 +
|
 +
| Yes
 
| Result GetThreadPriority(s32* priority, Handle thread)
 
| Result GetThreadPriority(s32* priority, Handle thread)
 
|-
 
|-
 
| 0xC  
 
| 0xC  
 +
|
 +
| Yes
 
| Result SetThreadPriority(Handle thread, s32 priority)
 
| Result SetThreadPriority(Handle thread, s32 priority)
 
|-
 
|-
 
| 0xD  
 
| 0xD  
 +
|
 +
| No
 
| Result GetThreadAffinityMask(u8* affinitymask, Handle thread, s32 processorcount)
 
| Result GetThreadAffinityMask(u8* affinitymask, Handle thread, s32 processorcount)
 
|-
 
|-
 
| 0xE  
 
| 0xE  
 +
|
 +
| No
 
| Result SetThreadAffinityMask(Handle thread, u8* affinitymask, s32 processorcount)
 
| Result SetThreadAffinityMask(Handle thread, u8* affinitymask, s32 processorcount)
 
|-
 
|-
 
| 0xF  
 
| 0xF  
 +
|
 +
| No
 
| Result GetThreadIdealProcessor(s32* processorid, Handle thread)
 
| Result GetThreadIdealProcessor(s32* processorid, Handle thread)
 
|-
 
|-
 
| 0x10  
 
| 0x10  
 +
|
 +
| No
 
| Result SetThreadIdealProcessor(Handle thread, s32 processorid)
 
| Result SetThreadIdealProcessor(Handle thread, s32 processorid)
 
|-
 
|-
 
| 0x11  
 
| 0x11  
 +
|
 +
| No
 
| s32 GetCurrentProcessorNumber(void)
 
| s32 GetCurrentProcessorNumber(void)
 
|-
 
|-
 
| 0x12  
 
| 0x12  
 +
|
 +
| No
 
| Result Run(Handle process, StartupInfo* info) (This starts the main() thread. Buf+0 is main-thread priority, Buf+4 is main-thread stack-size.)
 
| Result Run(Handle process, StartupInfo* info) (This starts the main() thread. Buf+0 is main-thread priority, Buf+4 is main-thread stack-size.)
 
|-
 
|-
 
| 0x13  
 
| 0x13  
 +
|
 +
| Yes
 
| Result CreateMutex(Handle* mutex, bool initialLocked)
 
| Result CreateMutex(Handle* mutex, bool initialLocked)
 
|-
 
|-
 
| 0x14  
 
| 0x14  
 +
|
 +
| Yes
 
| Result ReleaseMutex(Handle mutex)
 
| Result ReleaseMutex(Handle mutex)
 
|-
 
|-
 
| 0x15  
 
| 0x15  
 +
|
 +
| Yes
 
| Result CreateSemaphore(Handle* semaphore, s32 initialCount, s32 maxCount)
 
| Result CreateSemaphore(Handle* semaphore, s32 initialCount, s32 maxCount)
 
|-
 
|-
 
| 0x16  
 
| 0x16  
 +
|
 +
| Yes
 
| Result ReleaseSemaphore(s32* count, Handle semaphore, s32 releaseCount)
 
| Result ReleaseSemaphore(s32* count, Handle semaphore, s32 releaseCount)
 
|-
 
|-
 
| 0x17  
 
| 0x17  
 +
|
 +
| Yes
 
| Result CreateEvent(Handle* event, ResetType resettype)
 
| Result CreateEvent(Handle* event, ResetType resettype)
 
|-
 
|-
 
| 0x18  
 
| 0x18  
 +
|
 +
| Yes
 
| Result SignalEvent(Handle event)
 
| Result SignalEvent(Handle event)
 
|-
 
|-
 
| 0x19  
 
| 0x19  
 +
|
 +
| Yes
 
| Result ClearEvent(Handle event)
 
| Result ClearEvent(Handle event)
 
|-
 
|-
 
| 0x1A  
 
| 0x1A  
 +
|
 +
| Yes
 
| Result CreateTimer(Handle* timer, ResetType resettype)
 
| Result CreateTimer(Handle* timer, ResetType resettype)
 
|-
 
|-
 
| 0x1B  
 
| 0x1B  
 +
|
 +
| Yes
 
| Result SetTimer(Handle timer, s64 initial, s64 interval)
 
| Result SetTimer(Handle timer, s64 initial, s64 interval)
 
|-
 
|-
 
| 0x1C  
 
| 0x1C  
 +
|
 +
| Yes
 
| Result CancelTimer(Handle timer)
 
| Result CancelTimer(Handle timer)
 
|-
 
|-
 
| 0x1D  
 
| 0x1D  
 +
|
 +
| Yes
 
| Result ClearTimer(Handle timer)
 
| Result ClearTimer(Handle timer)
 
|-
 
|-
 
| 0x1E  
 
| 0x1E  
 +
|
 +
| No
 
| Result CreateMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission)
 
| Result CreateMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission)
 
|-
 
|-
 
| 0x1F  
 
| 0x1F  
 +
|
 +
| No
 
| Result MapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission)
 
| Result MapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission)
 
|-
 
|-
 
| 0x20  
 
| 0x20  
 +
|
 +
| No
 
| Result UnmapMemoryBlock(Handle memblock, u32 addr)
 
| Result UnmapMemoryBlock(Handle memblock, u32 addr)
 
|-
 
|-
 
| 0x21  
 
| 0x21  
 +
|
 +
| Yes
 
| Result CreateAddressArbiter(Handle* arbiter)
 
| Result CreateAddressArbiter(Handle* arbiter)
 
|-
 
|-
 
| 0x22  
 
| 0x22  
 +
|
 +
| Yes
 
| Result ArbitrateAddress(Handle arbiter, u32 addr, ArbitrationType type, s32 value)
 
| Result ArbitrateAddress(Handle arbiter, u32 addr, ArbitrationType type, s32 value)
 
|-
 
|-
 
| 0x23  
 
| 0x23  
 +
|
 +
| Yes
 
| Result CloseHandle(Handle handle)
 
| Result CloseHandle(Handle handle)
 
|-
 
|-
 
| 0x24  
 
| 0x24  
 +
|
 +
| Yes
 
| Result WaitSynchronization1(Handle handle, s64 nanoseconds)
 
| Result WaitSynchronization1(Handle handle, s64 nanoseconds)
 
|-
 
|-
 
| 0x25  
 
| 0x25  
 +
|
 +
| Yes
 
| Result WaitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds)
 
| Result WaitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds)
 
|-
 
|-
 
| 0x26  
 
| 0x26  
 +
|
 +
| No
 
| Result SignalAndWait(s32* out, Handle signal, Handle* handles, s32 handleCount, bool waitAll, s64 nanoseconds)
 
| Result SignalAndWait(s32* out, Handle signal, Handle* handles, s32 handleCount, bool waitAll, s64 nanoseconds)
 
|-
 
|-
 
| 0x27  
 
| 0x27  
 +
|
 +
| Yes
 
| Result DuplicateHandle(Handle* out, Handle original)
 
| Result DuplicateHandle(Handle* out, Handle original)
 
|-
 
|-
 
| 0x28  
 
| 0x28  
 +
|
 +
| Yes
 
| s64 GetSystemTick(void) (This returns the total CPU ticks elapsed since the CPU was powered-on)
 
| s64 GetSystemTick(void) (This returns the total CPU ticks elapsed since the CPU was powered-on)
 
|-
 
|-
 
| 0x29  
 
| 0x29  
 +
|
 +
| No
 
| Result GetHandleInfo(s64* out, Handle handle, HandleInfoType type)
 
| Result GetHandleInfo(s64* out, Handle handle, HandleInfoType type)
 
|-
 
|-
 
| 0x2A  
 
| 0x2A  
 +
|
 +
| Yes
 
| Result GetSystemInfo(s64* out, SystemInfoType type, s32 param)
 
| Result GetSystemInfo(s64* out, SystemInfoType type, s32 param)
 
|-
 
|-
 
| 0x2B  
 
| 0x2B  
 +
|
 +
| Yes
 
| Result GetProcessInfo(s64* out, Handle process, ProcessInfoType type)
 
| Result GetProcessInfo(s64* out, Handle process, ProcessInfoType type)
 
|-
 
|-
 
| 0x2C  
 
| 0x2C  
 +
|
 +
| Yes
 
| Result GetThreadInfo(s64* out, Handle thread, ThreadInfoType type)
 
| Result GetThreadInfo(s64* out, Handle thread, ThreadInfoType type)
 
|-
 
|-
 
| 0x2D  
 
| 0x2D  
 +
|
 +
| No
 
| Result ConnectToPort(Handle* out, const char* portName)
 
| Result ConnectToPort(Handle* out, const char* portName)
 
|-
 
|-
 
| 0x2E  
 
| 0x2E  
| Result SendSyncRequest1(Handle session) (Stubbed)
+
| Stubbed
 +
| No
 +
| Result SendSyncRequest1(Handle session)
 
|-
 
|-
 
| 0x2F  
 
| 0x2F  
| Result SendSyncRequest2(Handle session) (Stubbed)
+
| Stubbed
 +
| No
 +
| Result SendSyncRequest2(Handle session)
 
|-
 
|-
 
| 0x30  
 
| 0x30  
| Result SendSyncRequest3(Handle session) (Stubbed)
+
| Stubbed
 +
| No
 +
| Result SendSyncRequest3(Handle session)
 
|-
 
|-
 
| 0x31  
 
| 0x31  
| Result SendSyncRequest4(Handle session) (Stubbed)
+
| Stubbed
 +
| No
 +
| Result SendSyncRequest4(Handle session)
 
|-
 
|-
 
| 0x32  
 
| 0x32  
 +
|
 +
| No
 
| Result SendSyncRequest(Handle session)
 
| Result SendSyncRequest(Handle session)
 
|-
 
|-
 
| 0x33  
 
| 0x33  
 +
|
 +
| No
 
| Result OpenProcess(Handle* process, u32 processId)
 
| Result OpenProcess(Handle* process, u32 processId)
 
|-
 
|-
 
| 0x34  
 
| 0x34  
 +
|
 +
| No
 
| Result OpenThread(Handle* thread, Handle process, u32 threadId)
 
| Result OpenThread(Handle* thread, Handle process, u32 threadId)
 
|-
 
|-
 
| 0x35  
 
| 0x35  
 +
|
 +
| Yes
 
| Result GetProcessId(u32* processId, Handle process)
 
| Result GetProcessId(u32* processId, Handle process)
 
|-
 
|-
 
| 0x36  
 
| 0x36  
 +
|
 +
| No
 
| Result GetProcessIdOfThread(u32* processId, Handle thread)
 
| Result GetProcessIdOfThread(u32* processId, Handle thread)
 
|-
 
|-
 
| 0x37  
 
| 0x37  
 +
|
 +
| Yes
 
| Result GetThreadId(u32* threadId, Handle thread)
 
| Result GetThreadId(u32* threadId, Handle thread)
 
|-
 
|-
 
| 0x38  
 
| 0x38  
 +
|
 +
| No
 
| Result GetResourceLimit(Handle* resourceLimit, Handle process)
 
| Result GetResourceLimit(Handle* resourceLimit, Handle process)
 
|-
 
|-
 
| 0x39  
 
| 0x39  
 +
|
 +
| No
 
| Result GetResourceLimitLimitValues(s64* values, Handle resourceLimit, LimitableResource* names, s32 nameCount)
 
| Result GetResourceLimitLimitValues(s64* values, Handle resourceLimit, LimitableResource* names, s32 nameCount)
 
|-
 
|-
 
| 0x3A  
 
| 0x3A  
 +
|
 +
| No
 
| Result GetResourceLimitCurrentValues(s64* values, Handle resourceLimit, LimitableResource* names, s32 nameCount)
 
| Result GetResourceLimitCurrentValues(s64* values, Handle resourceLimit, LimitableResource* names, s32 nameCount)
 
|-
 
|-
 
| 0x3B  
 
| 0x3B  
 +
|
 +
| No
 
| Result GetThreadContext(ThreadContext* context, Handle thread) (Stubbed)
 
| Result GetThreadContext(ThreadContext* context, Handle thread) (Stubbed)
 
|-
 
|-
 
| 0x3C  
 
| 0x3C  
 +
|
 +
| Yes
 
| Break(BreakReason)
 
| Break(BreakReason)
 
|-
 
|-
 
| 0x3D  
 
| 0x3D  
 +
|
 +
| Yes
 
| OutputDebugString(void const, int) (Does nothing on non-debug units)
 
| OutputDebugString(void const, int) (Does nothing on non-debug units)
 
|-
 
|-
 
| 0x3E  
 
| 0x3E  
 +
|
 +
| No
 
| ControlPerformanceCounter(unsigned long long, int, unsigned int, unsigned long long)
 
| ControlPerformanceCounter(unsigned long long, int, unsigned int, unsigned long long)
 
|-
 
|-
 
| 0x47  
 
| 0x47  
 +
|
 +
| No
 
| Result CreatePort(Handle* portServer, Handle* portClient,  const char* name, s32 maxSessions)
 
| Result CreatePort(Handle* portServer, Handle* portClient,  const char* name, s32 maxSessions)
 
|-
 
|-
 
| 0x48  
 
| 0x48  
 +
|
 +
| No
 
| Result CreateSessionToPort(Handle* session, Handle port)
 
| Result CreateSessionToPort(Handle* session, Handle port)
 
|-
 
|-
 
| 0x49  
 
| 0x49  
 +
|
 +
| No
 
| Result CreateSession(Handle* sessionServer, Handle* sessionClient)
 
| Result CreateSession(Handle* sessionServer, Handle* sessionClient)
 
|-
 
|-
 
| 0x4A  
 
| 0x4A  
 +
|
 +
| No
 
| Result AcceptSession(Handle* session, Handle port)
 
| Result AcceptSession(Handle* session, Handle port)
 
|-
 
|-
 
| 0x4B  
 
| 0x4B  
 +
|
 +
| No
 
| Result ReplyAndReceive1(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
| Result ReplyAndReceive1(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
|-
 
|-
 
| 0x4C  
 
| 0x4C  
 +
|
 +
| No
 
| Result ReplyAndReceive2(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
| Result ReplyAndReceive2(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
|-
 
|-
 
| 0x4D  
 
| 0x4D  
 +
|
 +
| No
 
| Result ReplyAndReceive3(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
| Result ReplyAndReceive3(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
|-
 
|-
 
| 0x4E  
 
| 0x4E  
 +
|
 +
| No
 
| Result ReplyAndReceive4(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
| Result ReplyAndReceive4(s32* index, Handle* handles, s32 handleCount, Handle replyTarget) (Stubbed)
 
|-
 
|-
 
| 0x4F  
 
| 0x4F  
 +
|
 +
| No
 
| Result ReplyAndReceive(s32* index, Handle* handles, s32 handleCount, Handle replyTarget)
 
| Result ReplyAndReceive(s32* index, Handle* handles, s32 handleCount, Handle replyTarget)
 
|-
 
|-
 
| 0x50  
 
| 0x50  
 +
|
 +
| Yes
 
| Result BindInterrupt(Interrupt name, Handle syncObject, s32 priority, bool isManualClear)
 
| Result BindInterrupt(Interrupt name, Handle syncObject, s32 priority, bool isManualClear)
 
|-
 
|-
 
| 0x51  
 
| 0x51  
 +
|
 +
| Yes
 
| Result UnbindInterrupt(Interrupt name, Handle syncObject)
 
| Result UnbindInterrupt(Interrupt name, Handle syncObject)
 
|-
 
|-
 
| 0x52  
 
| 0x52  
 +
|
 +
| Yes
 
| Result InvalidateProcessDataCache(Handle process, void* addr, u32 size)
 
| Result InvalidateProcessDataCache(Handle process, void* addr, u32 size)
 
|-
 
|-
 
| 0x53  
 
| 0x53  
 +
|
 +
| Yes
 
| Result StoreProcessDataCache(Handle process, void const* addr, u32 size)
 
| Result StoreProcessDataCache(Handle process, void const* addr, u32 size)
 
|-
 
|-
 
| 0x54  
 
| 0x54  
 +
|
 +
| Yes
 
| Result FlushProcessDataCache(Handle process, void const* addr, u32 size)
 
| Result FlushProcessDataCache(Handle process, void const* addr, u32 size)
 
|-
 
|-
 
| 0x55  
 
| 0x55  
 +
|
 +
| Yes
 
| Result StartInterProcessDma(Handle* dma, Handle dstProcess, void* dst, Handle srcProcess, const void* src, u32 size, const DmaConfig& config )
 
| Result StartInterProcessDma(Handle* dma, Handle dstProcess, void* dst, Handle srcProcess, const void* src, u32 size, const DmaConfig& config )
 
|-
 
|-
 
| 0x56  
 
| 0x56  
 +
|
 +
| Yes
 
| Result StopDma(Handle dma)
 
| Result StopDma(Handle dma)
 
|-
 
|-
 
| 0x57  
 
| 0x57  
 +
|
 +
| Yes
 
| Result GetDmaState(DmaState* state, Handle dma)
 
| Result GetDmaState(DmaState* state, Handle dma)
 
|-
 
|-
 
| 0x58
 
| 0x58
 +
|
 +
| Yes
 
| RestartDma(nn::Handle, void *, void  const*, unsigned int, signed char)
 
| RestartDma(nn::Handle, void *, void  const*, unsigned int, signed char)
 
|-
 
|-
 
| 0x60  
 
| 0x60  
 +
|
 +
| No
 
| Result DebugActiveProcess(Handle* debug, u32 processID)
 
| Result DebugActiveProcess(Handle* debug, u32 processID)
 
|-
 
|-
 
| 0x61  
 
| 0x61  
 +
|
 +
| No
 
| Result BreakDebugProcess(Handle debug)
 
| Result BreakDebugProcess(Handle debug)
 
|-
 
|-
 
| 0x62  
 
| 0x62  
 +
|
 +
| No
 
| Result TerminateDebugProcess(Handle debug)
 
| Result TerminateDebugProcess(Handle debug)
 
|-
 
|-
 
| 0x63  
 
| 0x63  
 +
|
 +
| No
 
| Result GetProcessDebugEvent(DebugEventInfo* info, Handle debug)
 
| Result GetProcessDebugEvent(DebugEventInfo* info, Handle debug)
 
|-
 
|-
 
| 0x64  
 
| 0x64  
 +
|
 +
| No
 
| Result ContinueDebugEvent(Handle debug, u32 flags)
 
| Result ContinueDebugEvent(Handle debug, u32 flags)
 
|-
 
|-
 
| 0x65  
 
| 0x65  
 +
|
 +
| No
 
| Result GetProcessList(s32* processCount, u32* processIds, s32 processIdMaxCount)
 
| Result GetProcessList(s32* processCount, u32* processIds, s32 processIdMaxCount)
 
|-
 
|-
 
| 0x66  
 
| 0x66  
 +
|
 +
| No
 
| Result GetThreadList(s32* threadCount, u32* threadIds, s32 threadIdMaxCount, Handle domain)
 
| Result GetThreadList(s32* threadCount, u32* threadIds, s32 threadIdMaxCount, Handle domain)
 
|-
 
|-
 
| 0x67  
 
| 0x67  
 +
|
 +
| No
 
| Result GetDebugThreadContext(ThreadContext* context, Handle debug, u32 threadId, u32 controlFlags)
 
| Result GetDebugThreadContext(ThreadContext* context, Handle debug, u32 threadId, u32 controlFlags)
 
|-
 
|-
 
| 0x68  
 
| 0x68  
 +
|
 +
| No
 
| Result SetDebugThreadContext(Handle debug, u32 threadId, ThreadContext* context, u32 controlFlags)
 
| Result SetDebugThreadContext(Handle debug, u32 threadId, ThreadContext* context, u32 controlFlags)
 
|-
 
|-
 
| 0x69  
 
| 0x69  
 +
|
 +
| No
 
| Result QueryDebugProcessMemory(MemoryInfo* blockInfo, PageInfo* pageInfo, Handle process, u32 addr)
 
| Result QueryDebugProcessMemory(MemoryInfo* blockInfo, PageInfo* pageInfo, Handle process, u32 addr)
 
|-
 
|-
 
| 0x6A  
 
| 0x6A  
 +
|
 +
| No
 
| Result ReadProcessMemory(void* buffer, Handle debug, u32 addr, u32 size)
 
| Result ReadProcessMemory(void* buffer, Handle debug, u32 addr, u32 size)
 
|-
 
|-
 
| 0x6B  
 
| 0x6B  
 +
|
 +
| No
 
| Result WriteProcessMemory(Handle debug, void const* buffer, u32 addr, u32 size)
 
| Result WriteProcessMemory(Handle debug, void const* buffer, u32 addr, u32 size)
 
|-
 
|-
 
| 0x6C  
 
| 0x6C  
 +
|
 +
| No
 
| Result SetHardwareBreakPoint(s32 registerId, u32 control, u32 value)
 
| Result SetHardwareBreakPoint(s32 registerId, u32 control, u32 value)
 
|-
 
|-
 
| 0x6D
 
| 0x6D
 +
|
 +
| No
 
| GetDebugThreadParam(long long *, int *, nn::Handle, unsigned int, nn::dmnt::DebugThreadParam) (Disabled on regular kernel)
 
| GetDebugThreadParam(long long *, int *, nn::Handle, unsigned int, nn::dmnt::DebugThreadParam) (Disabled on regular kernel)
 
|-
 
|-
 
| 0x70
 
| 0x70
 +
|
 +
| No
 
| ControlProcessMemory(Handle KProcess, unsigned int Addr0, unsigned int Addr1, unsigned int Size, unsigned int Type, unsigned int Permissions)
 
| ControlProcessMemory(Handle KProcess, unsigned int Addr0, unsigned int Addr1, unsigned int Size, unsigned int Type, unsigned int Permissions)
 
|-
 
|-
 
| 0x71
 
| 0x71
 +
|
 +
| No
 
| MapProcessMemory(Handle KProcess, unsigned int StartAddr, unsigned int EndAddr)
 
| MapProcessMemory(Handle KProcess, unsigned int StartAddr, unsigned int EndAddr)
 
|-
 
|-
 
| 0x72
 
| 0x72
 +
|
 +
| No
 
| UnmapProcessMemory(Handle KProcess, unsigned int StartAddr, unsigned int EndAddr)
 
| UnmapProcessMemory(Handle KProcess, unsigned int StartAddr, unsigned int EndAddr)
 
|-
 
|-
 
| 0x73
 
| 0x73
 +
|
 +
| No
 
| ?
 
| ?
 
|-
 
|-
 
| 0x74
 
| 0x74
| Stubbed on regular kernel
+
| Stubbed
 +
| No
 +
|
 
|-
 
|-
 
| 0x75
 
| 0x75
 +
|
 +
| No
 
| ?
 
| ?
 
|-
 
|-
 
| 0x76
 
| 0x76
 +
|
 +
| No
 
| TerminateProcess(Handle)
 
| TerminateProcess(Handle)
 
|-
 
|-
 
| 0x77
 
| 0x77
 +
|
 +
| No
 
| (Handle KProcess, Handle KResourceLimit)
 
| (Handle KProcess, Handle KResourceLimit)
 
|-
 
|-
 
| 0x78
 
| 0x78
 +
|
 +
| No
 
| CreateResourceLimit(Handle *KResourceLimit)
 
| CreateResourceLimit(Handle *KResourceLimit)
 
|-
 
|-
 
| 0x79
 
| 0x79
 +
|
 +
| No
 
| ?
 
| ?
 
|-
 
|-
 
| 0x7A
 
| 0x7A
| DisableExecuteNever(unsigned int Addr, unsigned int Size) (Stubbed for regular kernel beginning with [[2.0.0-2]])
+
| Stubbed beginning with [[2.0.0-2]]
 +
| Yes
 +
| DisableExecuteNever(unsigned int Addr, unsigned int Size)
 
|-
 
|-
 
| 0x7C
 
| 0x7C
 +
|
 +
| Yes
 
| KernelSetState(unsigned int Type, unsigned int Param0, unsigned int Param1, unsigned int Param2) (The Type determines the usage of each param)
 
| KernelSetState(unsigned int Type, unsigned int Param0, unsigned int Param1, unsigned int Param2) (The Type determines the usage of each param)
 
|-
 
|-
 
| 0x7D
 
| 0x7D
 +
|
 +
| No
 
| QueryProcessMemory(MemInfo *Info, unsigned int *Out, Handle KProcess, unsigned int Addr)
 
| QueryProcessMemory(MemInfo *Info, unsigned int *Out, Handle KProcess, unsigned int Addr)
 
|-
 
|-
 
| 0xFF
 
| 0xFF
 +
|
 +
| Yes
 
| Debug related (The Syscall access control mask doesn't apply for this SVC)
 
| Debug related (The Syscall access control mask doesn't apply for this SVC)
 
|}
 
|}