Filesystem services: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || [[#OpenCodeFileSystem]] | ||
|- | |- | ||
| 1 || | | 1 || [[#IsArchivedProgram]] | ||
|- | |- | ||
| 2 || [4.0.0+] SetCurrentProcess | | 2 || [4.0.0+] [[#SetCurrentProcess]] | ||
|} | |} | ||
== OpenCodeFileSystem == | |||
Takes an u64 TitleId and a [[#ContentPath]]. Returns an [[#IFileSystem]]. | |||
== IsArchivedProgram == | |||
Takes an u64 ProcessId. Returns a bool (1 if the process id's [[#ContentPath]] ends in ".nca"). | |||
== SetCurrentProcess == | |||
Takes a PID descriptor. | |||
= fsp-pr = | = fsp-pr = | ||
Line 18: | Line 27: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[#RegisterProgram]] | | 0 || [[#RegisterProgram]] | ||
|- | |- | ||
| 1 || [[#UnregisterProgram]] | | 1 || [[#UnregisterProgram]] | ||
|- | |- | ||
| 2 || [4.0.0+] SetCurrentProcess | | 2 || [4.0.0+] [[#SetCurrentProcess]] | ||
|- | |- | ||
| 256 || [[#SetEnabledProgramVerification]] | | 256 || [[#SetEnabledProgramVerification]] | ||
|} | |} | ||
Line 99: | Line 108: | ||
| 34 || [5.0.0+] GetCacheStorageSize | | 34 || [5.0.0+] GetCacheStorageSize | ||
|- | |- | ||
| 35 || [6.0.0+] | | 35 || [6.0.0+] [[#OpenSaveDataFileSystemByHashSalt]] | ||
|- | |- | ||
| 36 || [9.0.0+] | | 36 || [9.0.0+] OpenHostFileSystemWithOption | ||
|- | |- | ||
| 51 || [[#OpenSaveDataFileSystem]] | | 51 || [[#OpenSaveDataFileSystem]] | ||
Line 127: | Line 136: | ||
| 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask | | 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask | ||
|- | |- | ||
| 67 || [6.0.0+] FindSaveDataWithFilter | | 67 || [6.0.0+] [[#FindSaveDataWithFilter]] | ||
|- | |- | ||
| 68 || [6.0.0+] OpenSaveDataInfoReaderWithFilter | | 68 || [6.0.0+] [[#OpenSaveDataInfoReaderWithFilter]] | ||
|- | |- | ||
| 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute | | 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute | ||
Line 137: | Line 146: | ||
| 80 || OpenSaveDataMetaFile | | 80 || OpenSaveDataMetaFile | ||
|- | |- | ||
| 81 || [4.0.0+] | | 81 || [4.0.0+] [[#OpenSaveDataTransferManager]] | ||
|- | |- | ||
| 82 || [5.0.0+] | | 82 || [5.0.0+] [[#OpenSaveDataTransferManagerVersion2]] | ||
|- | |- | ||
| 83 || [6.0.0+] | | 83 || [6.0.0+] [[#OpenSaveDataTransferProhibiterForCloudBackUp]] | ||
|- | |- | ||
| 84 || [6.0.0+] ListApplicationAccessibleSaveDataOwnerId | | 84 || [6.0.0+] [[#ListApplicationAccessibleSaveDataOwnerId]] | ||
|- | |- | ||
| 85 || [9.0.0+] | | 85 || [9.0.0+] [[#OpenSaveDataTransferManagerForSaveDataRepair]] | ||
|- | |- | ||
| 100 || OpenImageDirectoryFileSystem | | 100 || OpenImageDirectoryFileSystem | ||
Line 151: | Line 160: | ||
| 110 || [[#OpenContentStorageFileSystem]] | | 110 || [[#OpenContentStorageFileSystem]] | ||
|- | |- | ||
| 120 || [6.0.0+] | | 120 || [6.0.0+] [[#OpenCloudBackupWorkStorageFileSystem]] | ||
|- | |- | ||
| 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]] | | 130 || [7.0.0+] [[#OpenCustomStorageFileSystem]] | ||
|- | |- | ||
| 200 || OpenDataStorageByCurrentProcess | | 200 || OpenDataStorageByCurrentProcess | ||
Line 163: | Line 172: | ||
| 203 || OpenPatchDataStorageByCurrentProcess | | 203 || OpenPatchDataStorageByCurrentProcess | ||
|- | |- | ||
| 204 || [7.0.0+] | | 204 || [7.0.0+] [[#OpenDataFileSystemWithProgramIndex]] | ||
|- | |- | ||
| 205 || [7.0.0+] | | 205 || [7.0.0+] [[#OpenDataStorageWithProgramIndex]] | ||
|- | |- | ||
| 400 || [[#OpenDeviceOperator]] | | 400 || [[#OpenDeviceOperator]] | ||
Line 177: | Line 186: | ||
| 511 || [5.0.0+] NotifySystemDataUpdateEvent | | 511 || [5.0.0+] NotifySystemDataUpdateEvent | ||
|- | |- | ||
| 520 || [6.0.0+] SimulateDeviceDetectionEvent | | 520 || [6.0.0+] [[#SimulateDeviceDetectionEvent]] | ||
|- | |- | ||
| 600 || [1.0.0-3.0.2] SetCurrentPosixTime | | 600 || [1.0.0-3.0.2] SetCurrentPosixTime | ||
Line 259: | Line 268: | ||
| 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget | | 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget | ||
|- | |- | ||
| 1011 || [7.0.0+] GetProgramIndexForAccessLog | | 1011 || [7.0.0+] [[#GetProgramIndexForAccessLog]] | ||
|- | |- | ||
| 1012 || [9.0.0+] | | 1012 || [9.0.0+] GetFsStackUsage | ||
|- | |- | ||
| 1013 || [9.0.0+] | | 1013 || [9.0.0+] UnsetSaveDataRootPath | ||
|- | |- | ||
| 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey | | 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey | ||
Line 269: | Line 278: | ||
| 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset | | 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset | ||
|- | |- | ||
| 1200 || [6.0.0+] OpenMultiCommitManager | | 1200 || [6.0.0+] [[#OpenMultiCommitManager]] | ||
|} | |} | ||
Line 564: | Line 573: | ||
Mounts a [[Gamecard_Partition|gamecard partition]]. | Mounts a [[Gamecard_Partition|gamecard partition]]. | ||
== OpenSaveDataFileSystemByHashSalt == | |||
Takes a total of 0xB0-bytes of input, no output. | |||
== OpenSaveDataFileSystem == | == OpenSaveDataFileSystem == | ||
Line 592: | Line 604: | ||
== OpenSaveDataInfoReaderBySaveDataSpaceId == | == OpenSaveDataInfoReaderBySaveDataSpaceId == | ||
Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]]. | Takes an input u8 [[#SaveDataSpaceId]], returns an output [[#ISaveDataInfoReader]]. | ||
== FindSaveDataWithFilter == | |||
Takes a total of 0x50-bytes of input, returns 8-bytes of output and a type-0x6 output buffer. | |||
== OpenSaveDataInfoReaderWithFilter == | |||
Takes a total of 0x50-bytes of input, returns an [[#ISaveDataInfoReader]]. | |||
== OpenSaveDataTransferManager == | |||
No input, returns an [[#ISaveDataTransferManager]]. | |||
== OpenSaveDataTransferManagerVersion2 == | |||
No input, returns an [[#ISaveDataTransferManagerWithDivision]]. | |||
== OpenSaveDataTransferProhibiterForCloudBackUp == | |||
Takes an input u64, returns an [[#ISaveDataTransferProhibiter]]. | |||
== ListApplicationAccessibleSaveDataOwnerId == | |||
Takes a total of 0x10-bytes of input, returns 4-bytes of output and a type-0x6 output buffer. | |||
== OpenSaveDataTransferManagerForSaveDataRepair == | |||
No input, returns an output [[#ISaveDataTransferManagerForSaveDataRepair]]. | |||
== OpenContentStorageFileSystem == | == OpenContentStorageFileSystem == | ||
Line 597: | Line 630: | ||
Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]]. | Returns an [[#IFileSystem]] with NCA files. The read data from these files is identical to the data read by [[NCM_services#ReadContentIdFile]]. | ||
== OpenCloudBackupWorkStorageFileSystem == | |||
Takes 4-bytes of input, returns an [[#IFileSystem]]. | |||
== OpenCustomStorageFileSystem == | == OpenCustomStorageFileSystem == | ||
Line 607: | Line 643: | ||
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives. | Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives. | ||
== OpenDataFileSystemWithProgramIndex == | |||
Takes an input u8, returns an [[#IFileSystem]]. | |||
== OpenDataStorageWithProgramIndex == | |||
Takes an input u8, returns an [[#IStorage]]. | |||
== OpenDeviceOperator == | == OpenDeviceOperator == | ||
Line 616: | Line 658: | ||
== OpenGameCardDetectionEventNotifier == | == OpenGameCardDetectionEventNotifier == | ||
This command returns a session to a port implementing the [[#IEventNotifier]] interface. | This command returns a session to a port implementing the [[#IEventNotifier]] interface. | ||
== SimulateDeviceDetectionEvent == | |||
Takes a total of 0xC-bytes of input, no output. | |||
== VerifySaveDataFileSystem == | == VerifySaveDataFileSystem == | ||
Line 668: | Line 713: | ||
The input buffer is written to the "$FsAccessLog:/FsAccessLog.txt" file, where "$FsAccessLog" is the SD-card mount-name. It's written to the current end of the file(appended). | The input buffer is written to the "$FsAccessLog:/FsAccessLog.txt" file, where "$FsAccessLog" is the SD-card mount-name. It's written to the current end of the file(appended). | ||
== GetProgramIndexForAccessLog == | |||
No input, returns two 32-bit values "version" and "program_index". | |||
== OpenMultiCommitManager == | |||
No input, returns an output [[#IMultiCommitManager]]. | |||
= IStorage = | = IStorage = | ||
Line 676: | Line 727: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || Read | | 0 || [[#Read]] | ||
|- | |- | ||
| 1 || Write | | 1 || [[#Write]] | ||
|- | |- | ||
| 2 || Flush | | 2 || [[#Flush]] | ||
|- | |- | ||
| 3 || SetSize | | 3 || [[#SetSize]] | ||
|- | |- | ||
| 4 || GetSize | | 4 || [[#GetSize]] | ||
|- | |- | ||
| 5 || [4.0.0+] OperateRange | | 5 || [4.0.0+] OperateRange | ||
|} | |} | ||
== Read == | |||
Takes a type-0x46 buffer, an offset and length. | |||
== Write == | |||
Takes a type-0x45 buffer, an offset and length. | |||
== Flush == | |||
No input. | |||
== SetSize == | |||
Takes a size. | |||
== GetSize == | |||
Returns a size. | |||
= IFileSystem = | = IFileSystem = | ||
Line 930: | Line 996: | ||
| 219 || [8.0.0+] ChallengeCardExistence | | 219 || [8.0.0+] ChallengeCardExistence | ||
|- | |- | ||
| 220 || [9.0.0+] | | 220 || [9.0.0+] GetGameCardCompatibilityType | ||
|- | |- | ||
| 300 || SetSpeedEmulationMode | | 300 || SetSpeedEmulationMode | ||
Line 940: | Line 1,006: | ||
| 401 || [5.0.0+] ResumeSdmmcControl | | 401 || [5.0.0+] ResumeSdmmcControl | ||
|- | |- | ||
| 402 || [6.0.0+] GetSdmmcConnectionStatus | | 402 || [6.0.0+] [[#GetSdmmcConnectionStatus]] | ||
|- | |- | ||
| 500 || [6.0.0+] SetDeviceSimulationEvent | | 500 || [6.0.0+] [[#SetDeviceSimulationEvent]] | ||
|- | |- | ||
| 501 || [6.0.0+] ClearDeviceSimulationEvent | | 501 || [6.0.0+] [[#ClearDeviceSimulationEvent]] | ||
|} | |} | ||
Line 954: | Line 1,020: | ||
[[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required. | [[NS_Services|NS]] appears to only use this with [[Content_Manager_services#GetTitleIdInfo]] and [[Content_Manager_services#GetUpdateTitleList]] with storageid=nandsys, for checking whether a sysupdate is required. | ||
== GetSdmmcConnectionStatus == | |||
Takes a total of 4-bytes of input, returns a total of 8-bytes of output. | |||
== SetDeviceSimulationEvent == | |||
Takes a total of 0x14-bytes of input, no output. | |||
== ClearDeviceSimulationEvent == | |||
Takes a total of 4-bytes of input, no output. | |||
= IEventNotifier = | = IEventNotifier = | ||
Line 967: | Line 1,042: | ||
= ISaveDataTransferManager = | = ISaveDataTransferManager = | ||
This is "nn::fssrv::sf::ISaveDataTransferManager". | This is "nn::fssrv::sf::ISaveDataTransferManager". | ||
This was added with [[4.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 980: | Line 1,057: | ||
| 64 || [[#OpenSaveDataImporter]] | | 64 || [[#OpenSaveDataImporter]] | ||
|} | |} | ||
== GetChallenge == | == GetChallenge == | ||
Line 994: | Line 1,069: | ||
== OpenSaveDataImporter == | == OpenSaveDataImporter == | ||
Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]]. | Takes an input u8 [[#SaveDataSpaceId]] and a 0x10-byte userID, and a type-0x5 input buffer. Returns an output u64 and an [[#ISaveDataImporter]]. | ||
= ISaveDataTransferManagerForSaveDataRepair = | |||
This is "nn::fssrv::sf::ISaveDataTransferManagerForSaveDataRepair". | |||
This was added with [[9.0.0]]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#GetChallenge]] | |||
|- | |||
| 16 || [[#SetKeyPackage]] | |||
|- | |||
| 80 || [[#OpenSaveDataExporterAndGetEncryptedKey]] | |||
|- | |||
| 81 || [[#PrepareOpenSaveDataImporter]] | |||
|- | |||
| 90 || [[#OpenSaveDataImporter]] | |||
|- | |||
| 91 || [[#OpenSaveDataImporter2]] | |||
|- | |||
| 100 || [[#OpenSaveDataExporterWithKey]] | |||
|- | |||
| 110 || [[#OpenSaveDataImporterWithKey]] | |||
|} | |||
== SetKeyPackage == | |||
No input/output, takes a type-0x5 input buffer. | |||
== OpenSaveDataExporterAndGetEncryptedKey == | |||
Takes a total of 0x10-bytes of input and a type-0x1A output buffer to receive a RsaEncryptedKey. Returns an [[#ISaveDataDivisionExporter]]. | |||
== PrepareOpenSaveDataImporter == | |||
Takes a type-0x1A output buffer to receive a RsaEncryptedKey. | |||
== OpenSaveDataImporter == | |||
Takes a total of 0x18-bytes of input and two type-0x5 input buffers, returns an [[#ISaveDataDivisionImporter]]. | |||
== OpenSaveDataImporter2 == | |||
Takes a total of 0x18-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]]. | |||
== OpenSaveDataExporterWithKey == | |||
Takes a total of 0x20-bytes of input, returns an [[#ISaveDataDivisionExporter]]. | |||
== OpenSaveDataImporterWithKey == | |||
Takes a total of 0x28-bytes of input and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]]. | |||
= ISaveDataExporter = | = ISaveDataExporter = | ||
This is "nn::fssrv::sf::ISaveDataExporter". | This is "nn::fssrv::sf::ISaveDataExporter". | ||
This was added with [[4.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,010: | Line 1,134: | ||
| 17 || [[#PullInitialData]] | | 17 || [[#PullInitialData]] | ||
|} | |} | ||
== GetSaveDataInfo == | == GetSaveDataInfo == | ||
Line 1,029: | Line 1,151: | ||
= ISaveDataImporter = | = ISaveDataImporter = | ||
This is "nn::fssrv::sf::ISaveDataImporter". | This is "nn::fssrv::sf::ISaveDataImporter". | ||
This was added with [[4.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,042: | Line 1,166: | ||
| 17 || [[#Finalize]] | | 17 || [[#Finalize]] | ||
|} | |} | ||
== GetSaveDataInfo == | == GetSaveDataInfo == | ||
Line 1,061: | Line 1,183: | ||
= ISaveDataTransferManagerWithDivision = | = ISaveDataTransferManagerWithDivision = | ||
This is "nn::fssrv::sf::ISaveDataTransferManagerWithDivision". | This is "nn::fssrv::sf::ISaveDataTransferManagerWithDivision". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,090: | Line 1,214: | ||
| 69 || [6.0.0+] [[#CancelSuspendingImport]] | | 69 || [6.0.0+] [[#CancelSuspendingImport]] | ||
|} | |} | ||
== GetChallenge == | == GetChallenge == | ||
Line 1,128: | Line 1,250: | ||
= ISaveDataDivisionExporter = | = ISaveDataDivisionExporter = | ||
This is "nn::fssrv::sf::ISaveDataDivisionExporter". | This is "nn::fssrv::sf::ISaveDataDivisionExporter". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,133: | Line 1,257: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || SetDivisionCount | | 0 || [[#SetDivisionCount]] | ||
|- | |- | ||
| 1 || [6.0.0+] GetSaveDataInfo | | 1 || [6.0.0+] [[#GetSaveDataInfo]] | ||
|- | |- | ||
| 16 || | | 16 || [[#OpenSaveDataDiffChunkIterator]] | ||
|- | |- | ||
| 48 || | | 48 || [[#OpenSaveDataChunkExporter]] | ||
|- | |- | ||
| 64 || [6.0.0-8.1.0] FinalizeFullExport | | 64 || [6.0.0-8.1.0] [[#FinalizeFullExport]] | ||
|- | |- | ||
| 65 || [6.0.0-8.1.0] FinalizeDiffExport | | 65 || [6.0.0-8.1.0] [[#FinalizeDiffExport]] | ||
|- | |- | ||
| 66 || [6.0.0+] CancelExport | | 66 || [6.0.0+] [[#CancelExport]] | ||
|- | |- | ||
| 67 || [6.0.0+] SuspendExport | | 67 || [6.0.0+] [[#SuspendExport]] | ||
|- | |- | ||
| 70 || [6.0.0+] GetKeySeed | | 70 || [6.0.0+] [[#GetKeySeed]] | ||
|- | |- | ||
| 71 || [6.0.0+] GetInitialDataMac | | 71 || [6.0.0+] [[#GetInitialDataMac]] | ||
|- | |- | ||
| 72 || [6.0.0+] FinalizeExport | | 72 || [6.0.0+] [[#FinalizeExport]] | ||
|- | |- | ||
| 73 || [9.0.0+] | | 73 || [9.0.0+] [[#GetInitialDataMacKeyGeneration]] | ||
|- | |- | ||
| 80 || [6.0.0+] GetImportInitialDataAad | | 80 || [6.0.0+] [[#GetImportInitialDataAad]] | ||
|- | |- | ||
| 81 || [6.0.0+] SetExportInitialDataAad | | 81 || [6.0.0+] [[#SetExportInitialDataAad]] | ||
|- | |- | ||
| 96 || [6.0.0+] GetReportInfo | | 96 || [6.0.0+] [[#GetReportInfo]] | ||
|} | |} | ||
== SetDivisionCount == | |||
Takes an input u32, no output. | |||
== OpenSaveDataChunkExporter == | |||
Takes an input u32, returns an [[#ISaveDataChunkExporter]]. | |||
== FinalizeFullExport == | |||
No input, returns two 0x10-byte output structs. | |||
== FinalizeDiffExport == | |||
No input, returns an output 0x10-byte struct. | |||
== CancelExport == | |||
No input/output. | |||
== SuspendExport == | |||
No input/output, takes a type-0x6 output buffer. | |||
== GetKeySeed == | |||
No input, returns an output 0x10-byte struct. | |||
== GetInitialDataMac == | |||
No input, returns an output 0x10-byte struct. | |||
== FinalizeExport == | |||
No input/output. | |||
== SetExportInitialDataAad == | |||
Takes an input 0x20-byte struct, no output. | |||
= ISaveDataDivisionImporter = | = ISaveDataDivisionImporter = | ||
This is "nn::fssrv::sf::ISaveDataDivisionImporter". | This is "nn::fssrv::sf::ISaveDataDivisionImporter". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,173: | Line 1,327: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [6.0.0+] GetSaveDataInfo | | 0 || [6.0.0+] [[#GetSaveDataInfo]] | ||
|- | |- | ||
| 16 || | | 16 || [[#OpenSaveDataDiffChunkIterator]] | ||
|- | |- | ||
| 32 || InitializeImport | | 32 || [[#InitializeImport]] | ||
|- | |- | ||
| 33 || FinalizeImport | | 33 || [[#FinalizeImport]] | ||
|- | |- | ||
| 34 || [6.0.0+] CancelImport | | 34 || [6.0.0+] [[#CancelImport]] | ||
|- | |- | ||
| 35 || [6.0.0+] GetImportContext | | 35 || [6.0.0+] [[#GetImportContext]] | ||
|- | |- | ||
| 36 || [6.0.0+] SuspendImport | | 36 || [6.0.0+] [[#SuspendImport]] | ||
|- | |- | ||
| 48 || | | 48 || [[#OpenSaveDataChunkImporter]] | ||
|- | |- | ||
| 64 || [6.0.0+] GetImportInitialDataAad | | 64 || [6.0.0+] [[#GetImportInitialDataAad]] | ||
|- | |- | ||
| 80 || [6.0.0+] GetReportInfo | | 80 || [6.0.0+] [[#GetReportInfo]] | ||
|} | |} | ||
== GetSaveDataInfo == | |||
No input/output, takes a type-0x6 output buffer. | |||
== OpenSaveDataDiffChunkIterator == | |||
No input, returns an [[#ISaveDataChunkIterator]]. | |||
== InitializeImport == | |||
No input, returns an output u64. | |||
== FinalizeImport == | |||
No input/output. | |||
== CancelImport == | |||
No input/output. | |||
== GetImportContext == | |||
No input/output, takes a type-0x6 output buffer. | |||
== SuspendImport == | |||
No input/output. | |||
== OpenSaveDataChunkImporter == | |||
Takes an input u32, returns an [[#ISaveDataChunkImporter]]. | |||
== GetImportInitialDataAad == | |||
No input, returns an output 0x20-byte struct. | |||
== GetReportInfo == | |||
No input, returns an output 0x20-byte struct. | |||
= ISaveDataChunkIterator = | = ISaveDataChunkIterator = | ||
This is "nn::fssrv::sf::ISaveDataChunkIterator". | This is "nn::fssrv::sf::ISaveDataChunkIterator". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,203: | Line 1,387: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || Next | | 0 || [[#Next]] | ||
|- | |- | ||
| 1 || IsEnd | | 1 || [[#IsEnd]] | ||
|- | |- | ||
| 16 || GetId | | 16 || [[#GetId]] | ||
|} | |} | ||
== Next == | |||
No input/output. | |||
== IsEnd == | |||
No input, returns an output u8. | |||
== GetId == | |||
No input, returns an output u32. | |||
= ISaveDataChunkExporter = | = ISaveDataChunkExporter = | ||
This is "nn::fssrv::sf::ISaveDataChunkExporter". | This is "nn::fssrv::sf::ISaveDataChunkExporter". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,219: | Line 1,412: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || Pull | | 0 || [[#Pull]] | ||
|- | |- | ||
| 16 || [6.0.0+] [[#GetRestRawDataSize]] | |||
|} | |} | ||
== Pull == | |||
Takes an input u64 and a type-0x6 output buffer, returns an output u64. | |||
== GetRestRawDataSize == | |||
No input, returns an output u64. | |||
= ISaveDataChunkImporter = | = ISaveDataChunkImporter = | ||
This is "nn::fssrv::sf::ISaveDataChunkImporter". | This is "nn::fssrv::sf::ISaveDataChunkImporter". | ||
This was added with [[5.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,234: | Line 1,432: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || Push | | 0 || [[#Push]] | ||
|} | |} | ||
== Push == | |||
Takes an input u64 and a type-0x5 input buffer, no output. | |||
= ISaveDataTransferProhibiter = | = ISaveDataTransferProhibiter = | ||
Line 1,245: | Line 1,444: | ||
= IMultiCommitManager = | = IMultiCommitManager = | ||
This was added with [[6.0.0]]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 1 || | | 1 || [[#Add]] | ||
|- | |- | ||
| 2 || Commit | | 2 || [[#Commit]] | ||
|} | |} | ||
== Add == | |||
Takes an input [[#IFilesystem]], no output. | |||
= | == Commit == | ||
No input/output. | |||
= FileSystemType = | = FileSystemType = |