SVC: Difference between revisions
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
|- | |- | ||
| 0x1 | | 0x1 | ||
| 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 | ||
| QueryMemory(MemoryInfo* info, PageInfo* out, u32 Addr) | | Result QueryMemory(MemoryInfo* info, PageInfo* out, u32 Addr) | ||
|- | |- | ||
| 0x3 | | 0x3 | ||
| ExitProcess(void) | | void ExitProcess(void) | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| GetProcessAffinityMask(u8* affinitymask, Handle process, s32 processorcount) | | Result GetProcessAffinityMask(u8* affinitymask, Handle process, s32 processorcount) | ||
|- | |- | ||
| 0x5 | | 0x5 | ||
| SetProcessAffinityMask(Handle process, u8* affinitymask, s32 processorcount) | | Result SetProcessAffinityMask(Handle process, u8* affinitymask, s32 processorcount) | ||
|- | |- | ||
| 0x6 | | 0x6 | ||
| GetProcessIdealProcessor(s32 *idealprocessor, Handle process) | | Result GetProcessIdealProcessor(s32 *idealprocessor, Handle process) | ||
|- | |- | ||
| 0x7 | | 0x7 | ||
| SetProcessIdealProcessor(Handle process, s32 idealprocessor) | | Result SetProcessIdealProcessor(Handle process, s32 idealprocessor) | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| CreateThread(Handle* thread, func entrypoint, u32 arg, u32 stacktop, s32 threadpriority, s32 processorid) | | Result CreateThread(Handle* thread, func entrypoint, u32 arg, u32 stacktop, s32 threadpriority, s32 processorid) | ||
|- | |- | ||
| 0x9 | | 0x9 | ||
| ExitThread(void) | | void ExitThread(void) | ||
|- | |- | ||
| 0xA | | 0xA | ||
| SleepThread(s64 nanoseconds) | | void SleepThread(s64 nanoseconds) | ||
|- | |- | ||
| 0xB | | 0xB | ||
| GetThreadPriority(s32* priority, Handle thread) | | Result GetThreadPriority(s32* priority, Handle thread) | ||
|- | |- | ||
| 0xC | | 0xC | ||
| SetThreadPriority(Handle thread, s32 priority) | | Result SetThreadPriority(Handle thread, s32 priority) | ||
|- | |- | ||
| 0xD | | 0xD | ||
| GetThreadAffinityMask(u8* affinitymask, Handle thread, s32 processorcount) | | Result GetThreadAffinityMask(u8* affinitymask, Handle thread, s32 processorcount) | ||
|- | |- | ||
| 0xE | | 0xE | ||
| SetThreadAffinityMask(Handle thread, u8* affinitymask, s32 processorcount) | | Result SetThreadAffinityMask(Handle thread, u8* affinitymask, s32 processorcount) | ||
|- | |- | ||
| 0xF | | 0xF | ||
| GetThreadIdealProcessor(s32* processorid, Handle thread) | | Result GetThreadIdealProcessor(s32* processorid, Handle thread) | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| SetThreadIdealProcessor(Handle thread, s32 processorid) | | Result SetThreadIdealProcessor(Handle thread, s32 processorid) | ||
|- | |- | ||
| 0x11 | | 0x11 | ||
| GetCurrentProcessorNumber(void) | | s32 GetCurrentProcessorNumber(void) | ||
|- | |- | ||
| 0x12 | | 0x12 | ||
| 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 | ||
| CreateMutex(Handle* mutex, bool initialLocked) | | Result CreateMutex(Handle* mutex, bool initialLocked) | ||
|- | |- | ||
| 0x14 | | 0x14 | ||
| ReleaseMutex(Handle mutex) | | Result ReleaseMutex(Handle mutex) | ||
|- | |- | ||
| 0x15 | | 0x15 | ||
| CreateSemaphore(Handle* semaphore, s32 initialCount, s32 maxCount) | | Result CreateSemaphore(Handle* semaphore, s32 initialCount, s32 maxCount) | ||
|- | |- | ||
| 0x16 | | 0x16 | ||
| ReleaseSemaphore(s32* count, Handle semaphore, s32 releaseCount) | | Result ReleaseSemaphore(s32* count, Handle semaphore, s32 releaseCount) | ||
|- | |- | ||
| 0x17 | | 0x17 | ||
| CreateEvent(Handle* event, ResetType resettype) | | Result CreateEvent(Handle* event, ResetType resettype) | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| SignalEvent(Handle event) | | Result SignalEvent(Handle event) | ||
|- | |- | ||
| 0x19 | | 0x19 | ||
| ClearEvent(Handle event) | | Result ClearEvent(Handle event) | ||
|- | |- | ||
| 0x1A | | 0x1A | ||
| CreateTimer(Handle* timer, ResetType resettype) | | Result CreateTimer(Handle* timer, ResetType resettype) | ||
|- | |- | ||
| 0x1B | | 0x1B | ||
| SetTimer(Handle timer, s64 initial, s64 interval) | | Result SetTimer(Handle timer, s64 initial, s64 interval) | ||
|- | |- | ||
| 0x1C | | 0x1C | ||
| CancelTimer(Handle timer) | | Result CancelTimer(Handle timer) | ||
|- | |- | ||
| 0x1D | | 0x1D | ||
| ClearTimer(Handle timer) | | Result ClearTimer(Handle timer) | ||
|- | |- | ||
| 0x1E | | 0x1E | ||
| CreateMemoryBlock(Handle* memblock, u32 memory, u32 size, u32 mypermission, u32 otherpermission) | | Result CreateMemoryBlock(Handle* memblock, u32 memory, u32 size, u32 mypermission, u32 otherpermission) | ||
|- | |- | ||
| 0x1F | | 0x1F | ||
| MapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission) | | Result MapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission) | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| UnmapMemoryBlock(Handle memblock, u32 addr) | | Result UnmapMemoryBlock(Handle memblock, u32 addr) | ||
|- | |- | ||
| 0x21 | | 0x21 | ||
| CreateAddressArbiter(Handle* arbiter) | | Result CreateAddressArbiter(Handle* arbiter) | ||
|- | |- | ||
| 0x22 | | 0x22 | ||
| ArbitrateAddress(Handle arbiter, u32 addr, ArbitrationType type, s32 value) | | Result ArbitrateAddress(Handle arbiter, u32 addr, ArbitrationType type, s32 value) | ||
|- | |- | ||
| 0x23 | | 0x23 | ||
| CloseHandle(Handle handle) | | Result CloseHandle(Handle handle) | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| WaitSynchronization1(Handle handle, s64 nanoseconds) | | Result WaitSynchronization1(Handle handle, s64 nanoseconds) | ||
|- | |- | ||
| 0x25 | | 0x25 | ||
| 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 | ||
| SignalAndWait | | Result SignalAndWait(s32* out, Handle signal, Handle* handles, s32 handleCount, bool waitAll, s64 nanoseconds) | ||
|- | |- | ||
| 0x27 | | 0x27 | ||
| DuplicateHandle | | Result DuplicateHandle(Handle* out, Handle original) | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| GetSystemTick | | s64 GetSystemTick(void) | ||
|- | |- | ||
| 0x29 | | 0x29 | ||
| GetHandleInfo | | Result GetHandleInfo(s64* out, Handle handle, HandleInfoType type) | ||
|- | |- | ||
| 0x2A | | 0x2A | ||
| GetSystemInfo( | | Result GetSystemInfo(s64* out, SystemInfoType type, s32 param) | ||
|- | |- | ||
| 0x2B | | 0x2B | ||
| GetProcessInfo( | | Result GetProcessInfo(s64* out, Handle process, ProcessInfoType type) | ||
|- | |- | ||
| 0x2C | | 0x2C | ||
| GetThreadInfo | | Result GetThreadInfo(s64* out, Handle thread, ThreadInfoType type) | ||
|- | |- | ||
| 0x2D | | 0x2D | ||
| ConnectToPort(Handle*, char * | | Result ConnectToPort(Handle* out, const char* portName) | ||
|- | |- | ||
| 0x2E | | 0x2E |