From 49bea43cce7392999e80f13d84842e339f6c37ef Mon Sep 17 00:00:00 2001 From: yellows8 Date: Sun, 11 Mar 2018 17:40:28 -0400 Subject: [PATCH] Added envGetLastLoadResult(). --- nx/include/switch/runtime/env.h | 3 +++ nx/source/runtime/env.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/nx/include/switch/runtime/env.h b/nx/include/switch/runtime/env.h index af2e0d57..b21db618 100644 --- a/nx/include/switch/runtime/env.h +++ b/nx/include/switch/runtime/env.h @@ -85,3 +85,6 @@ Result envSetNextLoad(const char* path, const char* argv); /// Returns true if the environment supports envSetNextLoad. bool envHasNextLoad(void); + +/// Returns the Result from the last NRO. +Result envGetLastLoadResult(void); diff --git a/nx/source/runtime/env.c b/nx/source/runtime/env.c index 6ceb6e31..1cc7eb44 100644 --- a/nx/source/runtime/env.c +++ b/nx/source/runtime/env.c @@ -16,6 +16,7 @@ static u64 g_syscallHints[2]; static Handle g_processHandle = INVALID_HANDLE; static char* g_nextLoadPath = NULL; static char* g_nextLoadArgv = NULL; +static Result g_lastLoadResult = 0; extern __attribute__((weak)) u32 __nx_applet_type; @@ -84,6 +85,10 @@ void envSetup(void* ctx, Handle main_thread, LoaderReturnFn saved_lr) g_processHandle = ent->Value[0]; break; + case EntryType_LastLoadResult: + g_lastLoadResult = ent->Value[0]; + break; + default: if (ent->Flags & EntryFlag_IsMandatory) { @@ -164,3 +169,7 @@ Result envSetNextLoad(const char* path, const char* argv) bool envHasNextLoad(void) { return g_nextLoadPath != NULL; } + +Result envGetLastLoadResult(void) { + return g_lastLoadResult; +}