diff --git a/buildscripts/switch_rules b/buildscripts/switch_rules index 89c0a045..9d34b393 100644 --- a/buildscripts/switch_rules +++ b/buildscripts/switch_rules @@ -8,6 +8,19 @@ PORTLIBS := $(PORTLIBS_PATH)/armv8-a $(PORTLIBS_PATH)/switch LIBNX ?= $(DEVKITPRO)/libnx +#--------------------------------------------------------------------------------- +%.pfs0: %.nso + @mkdir -p exefs + @cp -R $(BUILD_EXEFS_SRC)/* exefs/ + @cp $< exefs/main + @build_pfs0 exefs $@ + @echo built ... $(notdir $@) + +#--------------------------------------------------------------------------------- +%.nso: %.elf + @elf2nso $< $@ + @echo built ... $(notdir $@) + #--------------------------------------------------------------------------------- %.elf: @echo linking $(notdir $@) diff --git a/nx/include/switch/svc.h b/nx/include/switch/svc.h index 8b9e1568..40883af7 100644 --- a/nx/include/switch/svc.h +++ b/nx/include/switch/svc.h @@ -19,6 +19,7 @@ static inline void* armGetTls(void) { } Result svcConnectToNamedPort(Handle* session, const char* name); +Result svcBreak(u32 BreakReason, u64 inval1, u64 inval2); Result svcReplyAndReceive(s32* index, const Handle* handles, s32 handleCount, Handle replyTarget, u64 timeout); Result svcManageNamedPort(Handle* portServer, const char* name, s32 maxSessions); diff --git a/nx/source/svc.s b/nx/source/svc.s index 4d7f286e..510e277e 100644 --- a/nx/source/svc.s +++ b/nx/source/svc.s @@ -19,6 +19,11 @@ SVC_BEGIN svcConnectToNamedPort ret SVC_END +SVC_BEGIN svcBreak + svc 0x26 + ret +SVC_END + SVC_BEGIN svcReplyAndReceive str x0, [sp, #-16]! svc 0x43