mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-23 13:22:40 +02:00
More threading functionality
This commit is contained in:
parent
03e9fdb883
commit
916dfb56f0
@ -12,3 +12,6 @@ Result threadCreate(
|
||||
Result threadStart(Thread* t);
|
||||
Result threadWaitForExit(Thread* t);
|
||||
Result threadClose(Thread* t);
|
||||
|
||||
Result threadPause(Thread* t);
|
||||
Result threadResume(Thread* t);
|
||||
|
@ -43,6 +43,7 @@ Result svcMapSharedMemory(Handle handle, void* addr, size_t size, u32 perm);
|
||||
Result svcUnmapSharedMemory(Handle handle, void* addr, size_t size);
|
||||
Result svcCreateTransferMemory(Handle* out, void* addr, size_t size, u32 perm);
|
||||
Result svcWaitSynchronization(s32* index, const Handle* handles, s32 handleCount, u64 timeout);
|
||||
Result svcCancelSynchronization(Handle thread);
|
||||
Result svcArbitrateLock(u32 wait_tag, u32* tag_location, u32 self_tag);
|
||||
Result svcArbitrateUnlock(u32* tag_location);
|
||||
Result svcConnectToNamedPort(Handle* session, const char* name);
|
||||
@ -52,6 +53,7 @@ Result svcGetProcessId(u64 *processID, Handle handle);
|
||||
Result svcBreak(u32 breakReason, u64 inval1, u64 inval2);
|
||||
Result svcOutputDebugString(const char *str, u64 size);
|
||||
Result svcGetInfo(u64* out, u64 id0, Handle handle, u64 id1);
|
||||
Result svcSetThreadActivity(Handle thread, bool paused);
|
||||
Result svcCreateSession(Handle *server_handle, Handle *client_handle, u32 unk0, u64 unk1);//unk* are normally 0?
|
||||
Result svcAcceptSession(Handle *session_handle, Handle port_handle);
|
||||
Result svcReplyAndReceive(s32* index, const Handle* handles, s32 handleCount, Handle replyTarget, u64 timeout);
|
||||
@ -78,4 +80,4 @@ 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);
|
||||
Result svcStartProcess(Handle proc, s32 main_prio, s32 default_cpu, u32 stack_size);
|
||||
u64 svcCallSecureMonitor(SecmonArgs* regs);
|
||||
u64 svcCallSecureMonitor(SecmonArgs* regs);
|
||||
|
@ -166,6 +166,11 @@ SVC_BEGIN svcGetInfo
|
||||
ret
|
||||
SVC_END
|
||||
|
||||
SVC_BEGIN svcSetThreadActivity
|
||||
svc 0x32
|
||||
ret
|
||||
SVC_END
|
||||
|
||||
SVC_BEGIN svcCreateSession
|
||||
stp x0, x1, [sp, #-16]!
|
||||
svc 0x40
|
||||
|
@ -124,3 +124,11 @@ Result threadClose(Thread* t) {
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
Result threadPause(Thread* t) {
|
||||
return svcSetThreadActivity(t->handle, 1);
|
||||
}
|
||||
|
||||
Result threadResume(Thread* t) {
|
||||
return svcSetThreadActivity(t->handle, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user