]> Chaos Git - corbenik/ctrulib.git/commitdiff
Added svc's.
authorplutoo <plutoo@univor.se>
Mon, 11 Aug 2014 17:38:48 +0000 (19:38 +0200)
committerplutoo <plutoo@univor.se>
Mon, 11 Aug 2014 17:38:48 +0000 (19:38 +0200)
libctru/include/ctr/svc.h
libctru/source/svc.s

index ddd5950ab3401e910a9a560206d0de774748d25b..dfa073ef8b3c537a286efe918bb585a75e72acf3 100644 (file)
@@ -15,7 +15,6 @@ typedef enum{
 }MEMORY_OPERATION;
 
        u32* getThreadCommandBuffer(void);
-       
        Result svc_controlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions); //(outaddr is usually the same as the input addr0)
        void svc_exitProcess(void);
        Result svc_createThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stacktop, s32 threadpriority, s32 processorid);
@@ -23,6 +22,7 @@ typedef enum{
        void svc_sleepThread(s64 ns);
        Result svc_createMutex(Handle* mutex, bool initialLocked);
        Result svc_releaseMutex(Handle handle);
+       Result svc_releaseSemaphore(s32* count, Handle semaphore, s32 releaseCount);
        Result svc_createEvent(Handle* event, u8 resettype);
        Result svc_signalEvent(Handle handle);
        Result svc_clearEvent(Handle handle);
@@ -31,10 +31,10 @@ typedef enum{
        Result svc_unmapMemoryBlock(Handle memblock, u32 addr);
        Result svc_waitSynchronization1(Handle handle, s64 nanoseconds);
        Result svc_waitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds);
+       Result svc_arbitrateAddress(Handle arbiter, u32 addr, u8 type, s32 value, s64 nanoseconds);
        Result svc_closeHandle(Handle handle);
        u64 svc_getSystemTick();
        Result svc_getSystemInfo(s64* out, u32 type, s32 param);
-       Result svc_getProcessInfo(s64* out, Handle process, u32 type);
        Result svc_connectToPort(volatile Handle* out, const char* portName);
        Result svc_sendSyncRequest(Handle session);
        Result svc_getProcessId(u32 *out, Handle handle);
index 09b4d9cf042cab191ab1054ba47de71da2984dad..8fdce4ada000c5f912c792ae52c6aabdb70c54c7 100644 (file)
@@ -67,6 +67,15 @@ svc_releaseMutex:
        svc 0x14
        bx lr
 
+.global svc_releaseSemaphore
+.type svc_releaseSemaphore, %function
+svc_releaseSemaphore:
+        str r0, [sp,#-4]!
+        svc 0x16
+        ldr r2, [sp], #4
+        str r1, [r2]
+        bx lr
+
 .global svc_createEvent
 .type svc_createEvent, %function
 svc_createEvent:
@@ -110,6 +119,12 @@ svc_unmapMemoryBlock:
        svc 0x20
        bx lr
 
+.global svc_arbitrateAddress
+.type svc_arbitrateAddress, %function
+svc_arbitrateAddress:
+        svc 0x22
+        bx lr
+
 .global svc_closeHandle
 .type svc_closeHandle, %function
 svc_closeHandle: