From 43f3f0405735f61cb055db378a70b7d4a0754663 Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Mon, 3 Oct 2016 17:41:13 -0400 Subject: [PATCH] Clean up some loader shit --- external/loader/source/fsldr.c | 25 ++++--------------------- external/loader/source/fsldr.h | 5 +++-- external/loader/source/interp.c | 7 +------ external/loader/source/srvsys.c | 1 - 4 files changed, 8 insertions(+), 30 deletions(-) diff --git a/external/loader/source/fsldr.c b/external/loader/source/fsldr.c index 91ce6b7..57a7f76 100644 --- a/external/loader/source/fsldr.c +++ b/external/loader/source/fsldr.c @@ -38,8 +38,7 @@ fsldrInit(void) ret = srvSysGetServiceHandle(&fsldrHandle, "fs:LDR"); if (R_SUCCEEDED(ret)) { fsldrPatchPermissions(); - ret = FSLDR_InitializeWithSdkVersion(fsldrHandle, SDK_VERSION); - ret = FSLDR_SetPriority(0); + ret = FSLDR_Initialize(fsldrHandle); if (R_FAILED(ret)) svcBreak(USERBREAK_ASSERT); // Can't properly panic here; no logger } else { @@ -58,13 +57,12 @@ fsldrExit(void) } Result -FSLDR_InitializeWithSdkVersion(Handle session, u32 version) +FSLDR_Initialize(Handle session) { u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = IPC_MakeHeader(0x861, 1, 2); // 0x8610042 - cmdbuf[1] = version; - cmdbuf[2] = 32; + cmdbuf[0] = IPC_MakeHeader(0x801, 0, 2); // 0x8010002 + cmdbuf[1] = 32; Result ret = 0; if (R_FAILED(ret = svcSendSyncRequest(session))) @@ -73,21 +71,6 @@ FSLDR_InitializeWithSdkVersion(Handle session, u32 version) return cmdbuf[1]; } -Result -FSLDR_SetPriority(u32 priority) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = IPC_MakeHeader(0x862, 1, 0); // 0x8620040 - cmdbuf[1] = priority; - - Result ret = 0; - if (R_FAILED(ret = svcSendSyncRequest(fsldrHandle))) - return ret; - - return cmdbuf[1]; -} - Result FSLDR_OpenFileDirectly(Handle *out, FS_ArchiveID archiveId, FS_Path archivePath, FS_Path filePath, u32 openFlags, u32 attributes) { diff --git a/external/loader/source/fsldr.h b/external/loader/source/fsldr.h index 1d57a31..9c24345 100644 --- a/external/loader/source/fsldr.h +++ b/external/loader/source/fsldr.h @@ -4,8 +4,9 @@ #include <3ds/types.h> Result fsldrInit(void); -void fsldrExit(void); -Result FSLDR_InitializeWithSdkVersion(Handle session, u32 version); +void fsldrExit(void); + +Result FSLDR_Initialize(Handle session); Result FSLDR_SetPriority(u32 priority); Result FSLDR_OpenFileDirectly(Handle *out, FS_ArchiveID archiveId, FS_Path archivePath, FS_Path filePath, u32 openFlags, u32 attributes); Result FSLDR_GetNandCid(u8* out, u32 length); diff --git a/external/loader/source/interp.c b/external/loader/source/interp.c index 890555c..e706cf8 100644 --- a/external/loader/source/interp.c +++ b/external/loader/source/interp.c @@ -1,6 +1,4 @@ -// 'Tis not ready for the world at large yet. -// I don't want to delete it since I'm working on it though, -// so it's temporarliy #if'd 0. +// This is a thin shim used to set the right parameters and include the interpreter from toplevel code. #include <3ds.h> #include #include "patcher.h" @@ -20,6 +18,3 @@ // Yes, we're including a C file. Problem? #include "../../../source/interpreter.c" -#if 0 - -#endif diff --git a/external/loader/source/srvsys.c b/external/loader/source/srvsys.c index 9d183c8..bb23ead 100644 --- a/external/loader/source/srvsys.c +++ b/external/loader/source/srvsys.c @@ -70,7 +70,6 @@ srvSysExit() else svcBreak(USERBREAK_ASSERT); // No logging available, sadly - rc = (Result)srvHandle; // yeah, I think this is a benign bug srvHandle = 0; srvRefCount--; RecursiveLock_Unlock(&initLock); -- 2.39.5