2014-01-18 23:18:03 +01:00
|
|
|
#ifndef SVC_H
|
|
|
|
#define SVC_H
|
|
|
|
|
2014-02-03 18:06:58 +01:00
|
|
|
typedef enum{
|
|
|
|
MEMOP_FREE = 1,
|
|
|
|
MEMOP_RESERVE = 2,
|
|
|
|
MEMOP_COMMIT = 3,
|
|
|
|
MEMOP_MAP = 4,
|
|
|
|
MEMOP_UNMAP = 5,
|
|
|
|
MEMOP_PROTECT = 6,
|
|
|
|
MEMOP_REGION_APP = 0x100,
|
|
|
|
MEMOP_REGION_SYSTEM = 0x200,
|
|
|
|
MEMOP_REGION_BASE = 0x300,
|
|
|
|
MEMOP_LINEAR = 0x1000,
|
|
|
|
}MEMORY_OPERATION;
|
|
|
|
|
2014-01-22 22:04:12 +01:00
|
|
|
u32* getThreadCommandBuffer(void);
|
2014-02-01 19:56:36 +01:00
|
|
|
Result svc_controlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions); //(outaddr is usually the same as the input addr0)
|
2014-01-19 13:33:28 +01:00
|
|
|
void svc_exitProcess(void);
|
2014-02-01 00:23:59 +01:00
|
|
|
Result svc_createThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stacktop, s32 threadpriority, s32 processorid);
|
|
|
|
void svc_exitThread();
|
2014-01-18 23:18:03 +01:00
|
|
|
void svc_sleepThread(s64 ns);
|
2014-02-01 13:27:52 +01:00
|
|
|
Result svc_createMutex(Handle* mutex, bool initialLocked);
|
2014-01-20 20:57:54 +01:00
|
|
|
Result svc_releaseMutex(Handle handle);
|
2014-08-11 19:38:48 +02:00
|
|
|
Result svc_releaseSemaphore(s32* count, Handle semaphore, s32 releaseCount);
|
2014-01-18 23:18:03 +01:00
|
|
|
Result svc_createEvent(Handle* event, u8 resettype);
|
2014-04-28 03:28:48 +02:00
|
|
|
Result svc_signalEvent(Handle handle);
|
2014-01-20 20:57:54 +01:00
|
|
|
Result svc_clearEvent(Handle handle);
|
2014-01-28 23:50:51 +01:00
|
|
|
Result svc_createMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission);
|
2014-01-18 23:18:03 +01:00
|
|
|
Result svc_mapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission);
|
2014-02-03 18:06:58 +01:00
|
|
|
Result svc_unmapMemoryBlock(Handle memblock, u32 addr);
|
2014-01-18 23:18:03 +01:00
|
|
|
Result svc_waitSynchronization1(Handle handle, s64 nanoseconds);
|
2014-01-19 21:49:01 +01:00
|
|
|
Result svc_waitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds);
|
2014-08-11 19:38:48 +02:00
|
|
|
Result svc_arbitrateAddress(Handle arbiter, u32 addr, u8 type, s32 value, s64 nanoseconds);
|
2014-01-18 23:18:03 +01:00
|
|
|
Result svc_closeHandle(Handle handle);
|
2014-04-28 03:28:48 +02:00
|
|
|
u64 svc_getSystemTick();
|
2014-02-03 18:06:58 +01:00
|
|
|
Result svc_getSystemInfo(s64* out, u32 type, s32 param);
|
2014-01-18 23:18:03 +01:00
|
|
|
Result svc_connectToPort(volatile Handle* out, const char* portName);
|
|
|
|
Result svc_sendSyncRequest(Handle session);
|
2014-04-28 03:28:48 +02:00
|
|
|
Result svc_getProcessId(u32 *out, Handle handle);
|
2014-01-18 23:18:03 +01:00
|
|
|
|
|
|
|
#endif
|