From 6892a71eeca433de38ef060051d336dbcbd9dfd7 Mon Sep 17 00:00:00 2001 From: fincs Date: Wed, 16 Sep 2015 23:58:12 +0200 Subject: [PATCH] Restore service session parameter in FSUSER_Initialize() --- libctru/include/3ds/services/fs.h | 2 +- libctru/source/services/fs.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/libctru/include/3ds/services/fs.h b/libctru/include/3ds/services/fs.h index 17f93b6..d85f75f 100644 --- a/libctru/include/3ds/services/fs.h +++ b/libctru/include/3ds/services/fs.h @@ -133,7 +133,7 @@ Handle *fsGetSessionHandle(void); FS_path FS_makePath(FS_pathType type, const char *path); -Result FSUSER_Initialize(void); +Result FSUSER_Initialize(Handle handle); Result FSUSER_OpenArchive(FS_archive* archive); Result FSUSER_OpenDirectory(Handle* out, FS_archive archive, FS_path dirLowPath); Result FSUSER_OpenFile(Handle* out, FS_archive archive, FS_path fileLowPath, u32 openflags, u32 attributes); diff --git a/libctru/source/services/fs.c b/libctru/source/services/fs.c index a2e7d34..0bbdd7a 100644 --- a/libctru/source/services/fs.c +++ b/libctru/source/services/fs.c @@ -48,7 +48,7 @@ fsInit(void) if (fsInitialised) return ret; if((ret=srvGetServiceHandle(&fsuHandle, "fs:USER"))!=0)return ret; - if(__get_handle_from_list("fs:USER")==0)ret=FSUSER_Initialize(); + if(__get_handle_from_list("fs:USER")==0)ret=FSUSER_Initialize(fsuHandle); fsInitialised = true; @@ -82,6 +82,8 @@ Handle *fsGetSessionHandle(void) * * @returns error * + * @param[in] handle fs:USER service handle + * * @internal * * #### Request @@ -99,19 +101,15 @@ Handle *fsGetSessionHandle(void) * 1 | Result code */ Result -FSUSER_Initialize(void) +FSUSER_Initialize(Handle handle) { - // don't run command if we got handle from the list - if(fsuHandle != 0 && __get_handle_from_list("fs:USER")!=0) - return 0; - u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = 0x08010002; cmdbuf[1] = 0x20; Result ret = 0; - if((ret = svcSendSyncRequest(fsuHandle))) + if((ret = svcSendSyncRequest(handle))) return ret; return cmdbuf[1];