This commit is contained in:
plutoo 2017-09-09 14:57:44 +02:00
commit 92f8243a42
3 changed files with 27 additions and 3 deletions

View File

@ -34,10 +34,9 @@ bss_loop:
add x0, x0, x30 // relocate ptr add x0, x0, x30 // relocate ptr
got_loop: got_loop:
ldr x2, [x0] ldr x3, [x0]
ldr x3, [x2]
add x3, x3, x30 add x3, x3, x30
str x3, [x2] str x3, [x0], #8
subs x1, x1, #8 subs x1, x1, #8
bne got_loop bne got_loop
@ -45,6 +44,7 @@ got_loop:
mov x1, #0 // argv mov x1, #0 // argv
ldr x3, =main ldr x3, =main
add x3, x3, x30
blr x3 blr x3
_sysexit: _sysexit:

View File

@ -18,8 +18,11 @@ static inline void* armGetTls(void) {
return 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 svcConnectToNamedPort(Handle* session, const char* name);
Result svcSendSyncRequest(Handle session); Result svcSendSyncRequest(Handle session);
Result svcBreak(u32 BreakReason, u64 inval1, u64 inval2); 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 svcReplyAndReceive(s32* index, const Handle* handles, s32 handleCount, Handle replyTarget, u64 timeout);
Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions); Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions);

View File

@ -11,6 +11,19 @@
.cfi_endproc .cfi_endproc
.endm .endm
SVC_BEGIN svcCloseHandle
svc 0x16
ret
SVC_END
SVC_BEGIN svcWaitSynchronization
str x0, [sp, #-16]!
svc 0x18
ldr x2, [sp], #16
str w1, [x2]
ret
SVC_END
SVC_BEGIN svcConnectToNamedPort SVC_BEGIN svcConnectToNamedPort
str x0, [sp, #-16]! str x0, [sp, #-16]!
svc 0x1f svc 0x1f
@ -29,6 +42,14 @@ SVC_BEGIN svcBreak
ret ret
SVC_END SVC_END
SVC_BEGIN svcAcceptSession
str x0, [sp, #-16]!
svc 0x41
ldr x2, [sp], #16
str w1, [x2]
ret
SVC_END
SVC_BEGIN svcReplyAndReceive SVC_BEGIN svcReplyAndReceive
str x0, [sp, #-16]! str x0, [sp, #-16]!
svc 0x43 svc 0x43