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) |
| |} | | |} |