mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
30 lines
1008 B
C
30 lines
1008 B
C
/**
|
|
* @file svc.h
|
|
* @brief Syscall wrappers.
|
|
*/
|
|
#pragma once
|
|
|
|
#include "types.h"
|
|
|
|
/// Pseudo handle for the current process
|
|
#define CUR_PROCESS_HANDLE 0xFFFF8001
|
|
|
|
/// Pseudo handle for the current thread
|
|
#define CUR_THREAD_HANDLE 0xFFFF8000
|
|
|
|
static inline void* armGetTls(void) {
|
|
void* ret;
|
|
__asm__ ("mrs %x[data], tpidrro_el0" : [data] "=r" (ret));
|
|
return ret;
|
|
}
|
|
|
|
Result svcCloseHandle(Handle handle);
|
|
Result svcWaitSynchronization(s32* index, const Handle* handles, s32 handleCount, u64 timeout);
|
|
Result svcConnectToNamedPort(Handle* session, const char* name);
|
|
Result svcSendSyncRequest(Handle session);
|
|
Result svcBreak(u32 BreakReason, u64 inval1, u64 inval2);
|
|
Result svcAcceptSession(Handle *session_handle, Handle port_handle);
|
|
Result svcReplyAndReceive(s32* index, const Handle* handles, s32 handleCount, Handle replyTarget, u64 timeout);
|
|
Result svcQueryIoMapping(u64* virtaddr, u64 physaddr, u64 size);
|
|
Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions);
|