diff --git a/nx/include/switch/services/fs.h b/nx/include/switch/services/fs.h index 210ac000..aef317b5 100644 --- a/nx/include/switch/services/fs.h +++ b/nx/include/switch/services/fs.h @@ -397,6 +397,9 @@ Result fsOutputAccessLogToSdCard(const char *log, size_t size); /// Only available on [7.0.0+]. Result fsGetProgramIndexForAccessLog(u32 *out_program_index, u32 *out_program_count); +// Wrapper(s) for fsCreateSaveDataFileSystem. +Result fsCreate_TemporaryStorage(u64 application_id, u64 owner_id, s64 size, u32 flags); + // Wrapper(s) for fsCreateSaveDataFileSystemBySystemSaveDataId. Result fsCreate_SystemSaveDataWithOwner(FsSaveDataSpaceId save_data_space_id, u64 system_save_data_id, AccountUid uid, u64 owner_id, s64 size, s64 journal_size, u32 flags); Result fsCreate_SystemSaveData(FsSaveDataSpaceId save_data_space_id, u64 system_save_data_id, s64 size, s64 journal_size, u32 flags); diff --git a/nx/source/services/fs.c b/nx/source/services/fs.c index 658da25d..d7bc8399 100644 --- a/nx/source/services/fs.c +++ b/nx/source/services/fs.c @@ -581,6 +581,25 @@ Result fsGetProgramIndexForAccessLog(u32 *out_program_index, u32 *out_program_co return rc; } +// Wrapper(s) for fsCreateSaveDataFileSystem. +Result fsCreate_TemporaryStorage(u64 application_id, u64 owner_id, s64 size, u32 flags) { + FsSaveDataAttribute attr = { + .application_id = application_id, + .save_data_type = FsSaveDataType_Temporary, + }; + FsSaveDataCreationInfo create = { + .save_data_size = size, + .journal_size = 0, + .available_size = 0x4000, + .owner_id = owner_id, + .flags = flags, + .save_data_space_id = FsSaveDataSpaceId_Temporary, + }; + FsSaveDataMetaInfo meta={}; + + return fsCreateSaveDataFileSystem(&attr, &create, &meta); +} + // Wrapper(s) for fsCreateSaveDataFileSystemBySystemSaveDataId. Result fsCreate_SystemSaveDataWithOwner(FsSaveDataSpaceId save_data_space_id, u64 system_save_data_id, AccountUid uid, u64 owner_id, s64 size, s64 journal_size, u32 flags) { FsSaveDataAttribute attr = { @@ -655,7 +674,7 @@ Result fsOpen_TemporaryStorage(FsFileSystem* out) { memset(&attr, 0, sizeof(attr)); attr.save_data_type = FsSaveDataType_Temporary; - return fsOpenSaveDataFileSystem(out, FsSaveDataType_Temporary, &attr); + return fsOpenSaveDataFileSystem(out, FsSaveDataSpaceId_Temporary, &attr); } Result fsOpen_CacheStorage(FsFileSystem* out, u64 application_id, u16 save_data_index) {