fs: Use official method names, document min sysver, correct a few parameters

This commit is contained in:
fincs 2019-10-21 12:37:38 +02:00
parent c77b88d868
commit 54f6fa5420
No known key found for this signature in database
GPG Key ID: 62C7609ADA219C60
3 changed files with 46 additions and 45 deletions

View File

@ -41,7 +41,7 @@ typedef struct {
typedef struct { typedef struct {
Service s; Service s;
} FsSaveDataIterator; } FsSaveDataInfoReader;
typedef struct { typedef struct {
Service s; Service s;
@ -196,7 +196,7 @@ typedef enum
FsSaveDataSpaceId_SdCard = 2, FsSaveDataSpaceId_SdCard = 2,
FsSaveDataSpaceId_TemporaryStorage = 3, FsSaveDataSpaceId_TemporaryStorage = 3,
FsSaveDataSpaceId_All = -1, ///< Pseudo value for fsOpenSaveDataIterator(). FsSaveDataSpaceId_All = -1, ///< Pseudo value for fsOpenSaveDataInfoReader().
} FsSaveDataSpaceId; } FsSaveDataSpaceId;
typedef enum typedef enum
@ -284,7 +284,7 @@ Result fsOpenBisStorage(FsStorage* out, FsBisStorageId partitionId);
Result fsOpenBisFileSystem(FsFileSystem* out, FsBisStorageId partitionId, const char* string); Result fsOpenBisFileSystem(FsFileSystem* out, FsBisStorageId partitionId, const char* string);
Result fsCreateSaveDataFileSystemBySystemSaveDataId(const FsSave* save, const FsSaveCreate* create); Result fsCreateSaveDataFileSystemBySystemSaveDataId(const FsSave* save, const FsSaveCreate* create);
Result fsDeleteSaveDataFileSystemBySaveDataSpaceId(FsSaveDataSpaceId saveDataSpaceId, u64 saveID); Result fsDeleteSaveDataFileSystemBySaveDataSpaceId(FsSaveDataSpaceId saveDataSpaceId, u64 saveID); /// [2.0.0+]
Result fsIsExFatSupported(bool* out); Result fsIsExFatSupported(bool* out);
Result fsOpenGameCardFileSystem(FsFileSystem* out, const FsGameCardHandle* handle, FsGameCardPartiton partition); Result fsOpenGameCardFileSystem(FsFileSystem* out, const FsGameCardHandle* handle, FsGameCardPartiton partition);
@ -294,11 +294,11 @@ Result fsWriteSaveDataFileSystemExtraData(const void* buf, size_t len, FsSaveDat
Result fsExtendSaveDataFileSystem(FsSaveDataSpaceId saveDataSpaceId, u64 saveID, s64 dataSize, s64 journalSize); /// [3.0.0+] Result fsExtendSaveDataFileSystem(FsSaveDataSpaceId saveDataSpaceId, u64 saveID, s64 dataSize, s64 journalSize); /// [3.0.0+]
/// Do not call this directly, see fs_dev.h. /// Do not call this directly, see fs_dev.h.
Result fsMountSdcard(FsFileSystem* out); Result fsOpenSdCardFileSystem(FsFileSystem* out);
Result fsMountSaveData(FsFileSystem* out, u8 inval, const FsSave *save); Result fsOpenSaveDataFileSystem(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, const FsSave *save);
Result fsMountSystemSaveData(FsFileSystem* out, u8 inval, const FsSave *save); Result fsOpenSaveDataFileSystemBySystemSaveDataId(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, const FsSave *save);
Result fsOpenSaveDataIterator(FsSaveDataIterator* out, FsSaveDataSpaceId saveDataSpaceId); Result fsOpenSaveDataInfoReader(FsSaveDataInfoReader* out, FsSaveDataSpaceId saveDataSpaceId);
Result fsOpenContentStorageFileSystem(FsFileSystem* out, FsContentStorageId content_storage_id); Result fsOpenContentStorageFileSystem(FsFileSystem* out, FsContentStorageId content_storage_id);
Result fsOpenCustomStorageFileSystem(FsFileSystem* out, FsCustomStorageId custom_storage_id); /// [7.0.0+] Result fsOpenCustomStorageFileSystem(FsFileSystem* out, FsCustomStorageId custom_storage_id); /// [7.0.0+]
Result fsOpenDataStorageByCurrentProcess(FsStorage* out); Result fsOpenDataStorageByCurrentProcess(FsStorage* out);
@ -324,13 +324,13 @@ Result fsCreate_SystemSaveData(FsSaveDataSpaceId saveDataSpaceId, u64 saveID, u6
/// FsFileSystem can be mounted with fs_dev for use with stdio, see fs_dev.h. /// FsFileSystem can be mounted with fs_dev for use with stdio, see fs_dev.h.
/// Wrapper(s) for fsMountSaveData. /// Wrapper(s) for fsOpenSaveDataFileSystem.
/// See FsSave for titleID and userID. /// See FsSave for titleID and userID.
Result fsMount_SaveData(FsFileSystem* out, u64 titleID, AccountUid *userID); Result fsOpen_SaveData(FsFileSystem* out, u64 titleID, AccountUid *userID);
/// Wrapper for fsMountSystemSaveData. /// Wrapper for fsOpenSaveDataFileSystemBySystemSaveDataId.
/// WARNING: You can brick when writing to SystemSaveData, if the data is corrupted etc. /// WARNING: You can brick when writing to SystemSaveData, if the data is corrupted etc.
Result fsMount_SystemSaveData(FsFileSystem* out, u64 saveID); Result fsOpen_SystemSaveData(FsFileSystem* out, u64 saveID);
typedef enum typedef enum
{ {
@ -348,9 +348,9 @@ typedef enum
} FsFileSystemQueryType; } FsFileSystemQueryType;
/// Mount requested filesystem type from content file /// Mount requested filesystem type from content file
Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath); /// same as calling fsOpenFileSystemWithId with 0 as titleId Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath); ///< same as calling fsOpenFileSystemWithId with 0 as titleId
Result fsOpenFileSystemWithId(FsFileSystem* out, u64 titleId, FsFileSystemType fsType, const char* contentPath); /// works on all firmwares, titleId is ignored on [1.0.0] Result fsOpenFileSystemWithId(FsFileSystem* out, u64 titleId, FsFileSystemType fsType, const char* contentPath); ///< works on all firmwares, titleId is ignored on [1.0.0]
Result fsOpenFileSystemWithPatch(FsFileSystem* out, u64 titleId, FsFileSystemType fsType); /// [2.0.0+], like OpenFileSystemWithId but without content path. Result fsOpenFileSystemWithPatch(FsFileSystem* out, u64 titleId, FsFileSystemType fsType); ///< [2.0.0+], like OpenFileSystemWithId but without content path.
// IFileSystem // IFileSystem
Result fsFsCreateFile(FsFileSystem* fs, const char* path, u64 size, u32 option); Result fsFsCreateFile(FsFileSystem* fs, const char* path, u64 size, u32 option);
@ -366,9 +366,9 @@ Result fsFsOpenDirectory(FsFileSystem* fs, const char* path, u32 mode, FsDir* ou
Result fsFsCommit(FsFileSystem* fs); Result fsFsCommit(FsFileSystem* fs);
Result fsFsGetFreeSpace(FsFileSystem* fs, const char* path, u64* out); Result fsFsGetFreeSpace(FsFileSystem* fs, const char* path, u64* out);
Result fsFsGetTotalSpace(FsFileSystem* fs, const char* path, u64* out); Result fsFsGetTotalSpace(FsFileSystem* fs, const char* path, u64* out);
Result fsFsGetFileTimeStampRaw(FsFileSystem* fs, const char* path, FsTimeStampRaw *out); /// [3.0.0+] Result fsFsGetFileTimeStampRaw(FsFileSystem* fs, const char* path, FsTimeStampRaw *out); ///< [3.0.0+]
Result fsFsCleanDirectoryRecursively(FsFileSystem* fs, const char* path); /// [3.0.0+] Result fsFsCleanDirectoryRecursively(FsFileSystem* fs, const char* path); ///< [3.0.0+]
Result fsFsQueryEntry(FsFileSystem* fs, void *out, size_t out_size, const void *in, size_t in_size, const char* path, FsFileSystemQueryType query_type); /// [4.0.0+] Result fsFsQueryEntry(FsFileSystem* fs, void *out, size_t out_size, const void *in, size_t in_size, const char* path, FsFileSystemQueryType query_type); ///< [4.0.0+]
void fsFsClose(FsFileSystem* fs); void fsFsClose(FsFileSystem* fs);
/// Uses \ref fsFsQueryEntry to set the archive bit on the specified absolute directory path. /// Uses \ref fsFsQueryEntry to set the archive bit on the specified absolute directory path.
@ -381,7 +381,7 @@ Result fsFileWrite(FsFile* f, u64 off, const void* buf, u64 write_size, u32 opti
Result fsFileFlush(FsFile* f); Result fsFileFlush(FsFile* f);
Result fsFileSetSize(FsFile* f, u64 sz); Result fsFileSetSize(FsFile* f, u64 sz);
Result fsFileGetSize(FsFile* f, u64* out); Result fsFileGetSize(FsFile* f, u64* out);
Result fsFileOperateRange(FsFile* f, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out); /// [4.0.0+] Result fsFileOperateRange(FsFile* f, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out); ///< [4.0.0+]
void fsFileClose(FsFile* f); void fsFileClose(FsFile* f);
// IDirectory // IDirectory
@ -395,14 +395,14 @@ Result fsStorageWrite(FsStorage* s, u64 off, const void* buf, u64 write_size);
Result fsStorageFlush(FsStorage* s); Result fsStorageFlush(FsStorage* s);
Result fsStorageSetSize(FsStorage* s, u64 sz); Result fsStorageSetSize(FsStorage* s, u64 sz);
Result fsStorageGetSize(FsStorage* s, u64* out); Result fsStorageGetSize(FsStorage* s, u64* out);
Result fsStorageOperateRange(FsStorage* s, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out); /// [4.0.0+] Result fsStorageOperateRange(FsStorage* s, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out); ///< [4.0.0+]
void fsStorageClose(FsStorage* s); void fsStorageClose(FsStorage* s);
// ISaveDataInfoReader // ISaveDataInfoReader
/// Read FsSaveDataInfo data into the buf array. /// Read FsSaveDataInfo data into the buf array.
Result fsSaveDataIteratorRead(FsSaveDataIterator *s, FsSaveDataInfo* buf, size_t max_entries, u64* total_entries); Result fsSaveDataInfoReaderRead(FsSaveDataInfoReader *s, FsSaveDataInfo* buf, size_t max_entries, u64* total_entries);
void fsSaveDataIteratorClose(FsSaveDataIterator *s); void fsSaveDataInfoReaderClose(FsSaveDataInfoReader *s);
// IEventNotifier // IEventNotifier
Result fsEventNotifierGetEventHandle(FsEventNotifier* e, Event* out, bool autoclear); Result fsEventNotifierGetEventHandle(FsEventNotifier* e, Event* out, bool autoclear);

View File

@ -432,7 +432,7 @@ Result fsdevDeleteDirectoryRecursively(const char *path) {
Result fsdevMountSdmc(void) Result fsdevMountSdmc(void)
{ {
FsFileSystem fs; FsFileSystem fs;
Result rc = fsMountSdcard(&fs); Result rc = fsOpenSdCardFileSystem(&fs);
if(R_SUCCEEDED(rc)) if(R_SUCCEEDED(rc))
{ {
int ret = fsdevMountDevice("sdmc", fs); int ret = fsdevMountDevice("sdmc", fs);

View File

@ -193,6 +193,9 @@ Result fsCreateSaveDataFileSystemBySystemSaveDataId(const FsSave* save, const Fs
} }
Result fsDeleteSaveDataFileSystemBySaveDataSpaceId(FsSaveDataSpaceId saveDataSpaceId, u64 saveID) { Result fsDeleteSaveDataFileSystemBySaveDataSpaceId(FsSaveDataSpaceId saveDataSpaceId, u64 saveID) {
if (hosversionBefore(2,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
const struct { const struct {
u8 saveDataSpaceId; u8 saveDataSpaceId;
u64 saveID; u64 saveID;
@ -201,18 +204,18 @@ Result fsDeleteSaveDataFileSystemBySaveDataSpaceId(FsSaveDataSpaceId saveDataSpa
return _fsObjectDispatchIn(&g_fsSrv, 25, in); return _fsObjectDispatchIn(&g_fsSrv, 25, in);
} }
Result fsMountSdcard(FsFileSystem* out) { Result fsOpenSdCardFileSystem(FsFileSystem* out) {
return _fsObjectDispatch(&g_fsSrv, 18, return _fsObjectDispatch(&g_fsSrv, 18,
.out_num_objects = 1, .out_num_objects = 1,
.out_objects = &out->s, .out_objects = &out->s,
); );
} }
Result fsMountSaveData(FsFileSystem* out, u8 inval, const FsSave *save) { Result fsOpenSaveDataFileSystem(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, const FsSave *save) {
const struct { const struct {
u8 inval; u8 saveDataSpaceId;
FsSave save; FsSave save;
} in = { inval, *save }; } in = { (u8)saveDataSpaceId, *save };
return _fsObjectDispatchIn(&g_fsSrv, 51, in, return _fsObjectDispatchIn(&g_fsSrv, 51, in,
.out_num_objects = 1, .out_num_objects = 1,
@ -220,11 +223,11 @@ Result fsMountSaveData(FsFileSystem* out, u8 inval, const FsSave *save) {
); );
} }
Result fsMountSystemSaveData(FsFileSystem* out, u8 inval, const FsSave *save) { Result fsOpenSaveDataFileSystemBySystemSaveDataId(FsFileSystem* out, FsSaveDataSpaceId saveDataSpaceId, const FsSave *save) {
const struct { const struct {
u8 inval; u8 saveDataSpaceId;
FsSave save; FsSave save;
} in = { inval, *save }; } in = { (u8)saveDataSpaceId, *save };
return _fsObjectDispatchIn(&g_fsSrv, 52, in, return _fsObjectDispatchIn(&g_fsSrv, 52, in,
.out_num_objects = 1, .out_num_objects = 1,
@ -232,14 +235,14 @@ Result fsMountSystemSaveData(FsFileSystem* out, u8 inval, const FsSave *save) {
); );
} }
static Result _fsOpenSaveDataInfoReader(FsSaveDataIterator* out) { static Result _fsOpenSaveDataInfoReader(FsSaveDataInfoReader* out) {
return _fsObjectDispatch(&g_fsSrv, 60, return _fsObjectDispatch(&g_fsSrv, 60,
.out_num_objects = 1, .out_num_objects = 1,
.out_objects = &out->s, .out_objects = &out->s,
); );
} }
static Result _fsOpenSaveDataInfoReaderBySaveDataSpaceId(FsSaveDataIterator* out, FsSaveDataSpaceId saveDataSpaceId) { static Result _fsOpenSaveDataInfoReaderBySaveDataSpaceId(FsSaveDataInfoReader* out, FsSaveDataSpaceId saveDataSpaceId) {
u8 in = (u8)saveDataSpaceId; u8 in = (u8)saveDataSpaceId;
return _fsObjectDispatchIn(&g_fsSrv, 61, in, return _fsObjectDispatchIn(&g_fsSrv, 61, in,
.out_num_objects = 1, .out_num_objects = 1,
@ -248,7 +251,7 @@ static Result _fsOpenSaveDataInfoReaderBySaveDataSpaceId(FsSaveDataIterator* out
} }
Result fsOpenSaveDataIterator(FsSaveDataIterator* out, FsSaveDataSpaceId saveDataSpaceId) { Result fsOpenSaveDataInfoReader(FsSaveDataInfoReader* out, FsSaveDataSpaceId saveDataSpaceId) {
if (saveDataSpaceId == FsSaveDataSpaceId_All) { if (saveDataSpaceId == FsSaveDataSpaceId_All) {
return _fsOpenSaveDataInfoReader(out); return _fsOpenSaveDataInfoReader(out);
} else { } else {
@ -452,8 +455,8 @@ Result fsCreate_SystemSaveData(FsSaveDataSpaceId saveDataSpaceId, u64 saveID, u6
return fsCreate_SystemSaveDataWithOwner(saveDataSpaceId, saveID, 0, 0, size, journalSize, flags); return fsCreate_SystemSaveDataWithOwner(saveDataSpaceId, saveID, 0, 0, size, journalSize, flags);
} }
// Wrapper(s) for fsMountSaveData. // Wrapper(s) for fsOpenSaveDataFileSystem.
Result fsMount_SaveData(FsFileSystem* out, u64 titleID, AccountUid *userID) { Result fsOpen_SaveData(FsFileSystem* out, u64 titleID, AccountUid *userID) {
FsSave save; FsSave save;
memset(&save, 0, sizeof(save)); memset(&save, 0, sizeof(save));
@ -461,17 +464,17 @@ Result fsMount_SaveData(FsFileSystem* out, u64 titleID, AccountUid *userID) {
save.userID = *userID; save.userID = *userID;
save.saveDataType = FsSaveDataType_SaveData; save.saveDataType = FsSaveDataType_SaveData;
return fsMountSaveData(out, FsSaveDataSpaceId_NandUser, &save); return fsOpenSaveDataFileSystem(out, FsSaveDataSpaceId_NandUser, &save);
} }
Result fsMount_SystemSaveData(FsFileSystem* out, u64 saveID) { Result fsOpen_SystemSaveData(FsFileSystem* out, u64 saveID) {
FsSave save; FsSave save;
memset(&save, 0, sizeof(save)); memset(&save, 0, sizeof(save));
save.saveID = saveID; save.saveID = saveID;
save.saveDataType = FsSaveDataType_SystemSaveData; save.saveDataType = FsSaveDataType_SystemSaveData;
return fsMountSystemSaveData(out, FsSaveDataSpaceId_NandSystem, &save); return fsOpenSaveDataFileSystemBySystemSaveDataId(out, FsSaveDataSpaceId_NandSystem, &save);
} }
Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath) { Result fsOpenFileSystem(FsFileSystem* out, FsFileSystemType fsType, const char* contentPath) {
@ -512,9 +515,8 @@ Result fsOpenFileSystemWithId(FsFileSystem* out, u64 titleId, FsFileSystemType f
} }
Result fsOpenFileSystemWithPatch(FsFileSystem* out, u64 titleId, FsFileSystemType fsType) { Result fsOpenFileSystemWithPatch(FsFileSystem* out, u64 titleId, FsFileSystemType fsType) {
if (hosversionBefore(2,0,0)) { if (hosversionBefore(2,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
}
const struct { const struct {
FsFileSystemType fsType; FsFileSystemType fsType;
@ -719,9 +721,8 @@ Result fsFileGetSize(FsFile* f, u64* out) {
} }
Result fsFileOperateRange(FsFile* f, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out) { Result fsFileOperateRange(FsFile* f, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out) {
if (hosversionBefore(4,0,0)) { if (hosversionBefore(4,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
}
const struct { const struct {
u32 op_id; u32 op_id;
@ -793,9 +794,8 @@ Result fsStorageGetSize(FsStorage* s, u64* out) {
} }
Result fsStorageOperateRange(FsStorage* s, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out) { Result fsStorageOperateRange(FsStorage* s, FsOperationId op_id, u64 off, u64 len, FsRangeInfo* out) {
if (hosversionBefore(4,0,0)) { if (hosversionBefore(4,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
}
const struct { const struct {
u32 op_id; u32 op_id;
@ -814,14 +814,15 @@ void fsStorageClose(FsStorage* s) {
// ISaveDataInfoReader // ISaveDataInfoReader
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
Result fsSaveDataIteratorRead(FsSaveDataIterator *s, FsSaveDataInfo* buf, size_t max_entries, u64* total_entries) { // Actually called ReadSaveDataInfo
Result fsSaveDataInfoReaderRead(FsSaveDataInfoReader *s, FsSaveDataInfo* buf, size_t max_entries, u64* total_entries) {
return _fsObjectDispatchOut(&s->s, 0, *total_entries, return _fsObjectDispatchOut(&s->s, 0, *total_entries,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out }, .buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffers = { { buf, sizeof(FsSaveDataInfo)*max_entries } }, .buffers = { { buf, sizeof(FsSaveDataInfo)*max_entries } },
); );
} }
void fsSaveDataIteratorClose(FsSaveDataIterator* s) { void fsSaveDataInfoReaderClose(FsSaveDataInfoReader* s) {
_fsObjectClose(&s->s); _fsObjectClose(&s->s);
} }