Line 59: |
Line 59: |
| | 8 || [2.0.0+] [[#OpenFileSystemWithId]] | | | 8 || [2.0.0+] [[#OpenFileSystemWithId]] |
| |- | | |- |
− | | 9 || [3.0.0+] OpenDataFileSystemByApplicationId | + | | 9 || [3.0.0+] OpenDataFileSystemByProgramId |
| |- | | |- |
| | 11 || [[#OpenBisFileSystem]] | | | 11 || [[#OpenBisFileSystem]] |
Line 117: |
Line 117: |
| | 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]] | | | 61 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]] |
| |- | | |- |
− | | 62 || [5.0.0+] OpenCacheStorageList | + | | 62 || [5.0.0+] OpenSaveDataInfoReaderOnlyCacheStorage |
| |- | | |- |
| | 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem | | | 64 || [5.0.0+] OpenSaveDataInternalStorageFileSystem |
Line 123: |
Line 123: |
| | 65 || [5.0.0+] UpdateSaveDataMacForDebug | | | 65 || [5.0.0+] UpdateSaveDataMacForDebug |
| |- | | |- |
− | | 66 || [5.0.0+] WriteSaveDataFileSystemExtraData2 | + | | 66 || [5.0.0+] WriteSaveDataFileSystemExtraDataWithMask |
| |- | | |- |
| | 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer) | | | 67 || [6.0.0+] FindSaveDataWithFilter (Takes a total of 0x50-bytes of input, returns 8-bytes of output, and a type-0x6 output buffer) |
| |- | | |- |
− | | 68 || [6.0.0+] OpenSaveDataIterator (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader) | + | | 68 || [6.0.0+] OpenSaveDataInfoReaderWithFilter (Takes a total of 0x50-bytes of input, returns an #ISaveDataInfoReader) |
| |- | | |- |
| | 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute | | | 69 || [8.0.0+] ReadSaveDataFileSystemExtraDataBySaveDataAttribute |
Line 159: |
Line 159: |
| | 203 || OpenPatchDataStorageByCurrentProcess | | | 203 || OpenPatchDataStorageByCurrentProcess |
| |- | | |- |
− | | 204 || [7.0.0+] OpenDataFileSystemByProgramIndex (Takes an input u8, returns an [[#IFileSystem]]) | + | | 204 || [7.0.0+] OpenDataFileSystemWithProgramIndex (Takes an input u8, returns an [[#IFileSystem]]) |
| |- | | |- |
− | | 205 || [7.0.0+] OpenDataStorageByProgramIndex (Takes an input u8, returns an [[#IStorage]]) | + | | 205 || [7.0.0+] OpenDataStorageWithProgramIndex (Takes an input u8, returns an [[#IStorage]]) |
| |- | | |- |
| | 400 || [[#OpenDeviceOperator]] | | | 400 || [[#OpenDeviceOperator]] |
Line 173: |
Line 173: |
| | 511 || [5.0.0+] NotifySystemDataUpdateEvent | | | 511 || [5.0.0+] NotifySystemDataUpdateEvent |
| |- | | |- |
− | | 520 || [6.0.0+] SimulateGameCardDetectionEvent (Takes a total of 0xC-bytes of input, no output) | + | | 520 || [6.0.0+] SimulateDeviceDetectionEvent (Takes a total of 0xC-bytes of input, no output) |
| |- | | |- |
| | 600 || [1.0.0-3.0.2] SetCurrentPosixTime | | | 600 || [1.0.0-3.0.2] SetCurrentPosixTime |
Line 219: |
Line 219: |
| | 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid | | | 640 || [4.0.0-7.0.1] IsSignedSystemPartitionOnSdCardValid |
| |- | | |- |
− | | 700 || [5.0.0+] [[#OpenAccessFailureResolver]] | + | | 700 || [5.0.0+] [[#OpenAccessFailureDetectionEventNotifier]] |
| |- | | |- |
| | 701 || [5.0.0+] GetAccessFailureDetectionEvent | | | 701 || [5.0.0+] GetAccessFailureDetectionEvent |
Line 229: |
Line 229: |
| | 720 || [5.0.0+] AbandonAccessFailure | | | 720 || [5.0.0+] AbandonAccessFailure |
| |- | | |- |
− | | 800 || [2.0.0+] GetAndClearFileSystemProxyErrorInfo | + | | 800 || [2.0.0+] GetAndClearErrorInfo |
| |- | | |- |
| | 810 || [7.0.0+] RegisterProgramIndexMapInfo | | | 810 || [7.0.0+] RegisterProgramIndexMapInfo |
Line 255: |
Line 255: |
| | 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget | | | 1010 || [5.1.0-6.2.0] SetDataStorageRedirectTarget |
| |- | | |- |
− | | 1011 || [7.0.0+] GetAccessLogVersionInfo (Unofficial name, no input, returns two 32-bit values "version" and "program_index") | + | | 1011 || [7.0.0+] GetProgramIndexForAccessLog (No input, returns two 32-bit values "version" and "program_index") |
| |- | | |- |
| | 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey | | | 1100 || [4.0.0+] OverrideSaveDataTransferTokenSignVerificationKey |
| |- | | |- |
− | | 1110 || [6.0.0+] CorruptSaveDataFileSystemBySaveDataSpaceId2 | + | | 1110 || [6.0.0+] CorruptSaveDataFileSystemByOffset |
| |- | | |- |
| | 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager) | | | 1200 || [6.0.0+] OpenMultiCommitManager (No input, returns an output #IMultiCommitManager) |
Line 402: |
Line 402: |
| | 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] | | | 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]] |
| |- | | |- |
− | | 0xD || 0x8000000000000040<br/>([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataIterator || OpenSaveDataIterator | + | | 0xD || 0x8000000000000040<br/>([1.0.0-5.1.0] 0x8000000000020000) || CanOpenSaveDataInfoReaderForInternal || OpenSaveDataInfoReaderWithFilter |
| |- | | |- |
| | 0xE || 0x8000000000020000<br/>([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]] | | | 0xE || 0x8000000000020000<br/>([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]] |
Line 434: |
Line 434: |
| | [3.0.0+] 0x1C || 0x8000000000000800<br/>([5.0.0-5.1.0] 0x8000000000004020)<br/>([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]] | | | [3.0.0+] 0x1C || 0x8000000000000800<br/>([5.0.0-5.1.0] 0x8000000000004020)<br/>([1.0.0-4.1.0] 0x8000000000000028) || CanSetEncryptionSeed || [[#SetSdCardEncryptionSeed]] |
| |- | | |- |
− | | [4.0.0+] 0x1D || 0x8000000000000020<br/>([5.0.0-5.1.0] 0x8000000000000000)<br/>([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]] | + | | [4.0.0+] 0x1D || 0x8000000000000020<br/>([5.0.0-5.1.0] 0x8000000000000000)<br/>([1.0.0-4.1.0] 0x8000000020000000) || SaveDataExtraData_Write0 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraDataWithMask]] |
| |- | | |- |
− | | [4.0.0+] 0x1E || 0x8000000000004020<br/>([5.0.0-5.1.0] 0x8000000000002020)<br/>([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]] | + | | [4.0.0+] 0x1E || 0x8000000000004020<br/>([5.0.0-5.1.0] 0x8000000000002020)<br/>([1.0.0-4.1.0] 0x8000000040000000) || CanWriteSaveDataFileSystemExtraDataFlags || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraDataWithMask]] |
| |- | | |- |
− | | [4.0.0+] 0x1F || 0x8000000000000020<br/>([5.0.0-5.1.0] 0x8000000000000028)<br/>([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]] | + | | [4.0.0+] 0x1F || 0x8000000000000020<br/>([5.0.0-5.1.0] 0x8000000000000028)<br/>([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write1 || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraDataWithMask]] |
| |- | | |- |
− | | [4.0.0+] 0x20 || 0x8000000000000000<br/>([5.0.0-5.1.0] 0x8000000020000000)<br/>([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraData2]] | + | | [4.0.0+] 0x20 || 0x8000000000000000<br/>([5.0.0-5.1.0] 0x8000000020000000)<br/>([1.0.0-4.1.0] 0x8000000000000000) || CanWriteSaveDataFileSystemExtraDataAll || [[#WriteSaveDataFileSystemExtraData]], [[#WriteSaveDataFileSystemExtraDataWithMask]] |
| |- | | |- |
| | [5.0.0+] 0x21 || 0x8000000000002020<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]] | | | [5.0.0+] 0x21 || 0x8000000000002020<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]] |
Line 452: |
Line 452: |
| | [5.0.0+] 0x25 || 0x8000000200000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]] | | | [5.0.0+] 0x25 || 0x8000000200000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || CanOpenSaveDataTransferManagerVersion2 || [[#OpenSaveDataTransferManagerVersion2]] |
| |- | | |- |
− | | [5.0.0+] 0x26 || 0x8000000200002000<br/>([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]] | + | | [5.0.0+] 0x26 || 0x8000000200002000<br/>([1.0.0-5.1.0] 0x8000000080000110) || CanOpenOpenSaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiter]] |
| |- | | |- |
− | | [5.0.0+] 0x27 || 0x8000000240002000 <br/>([6.0.0-7.0.1] 0x8000000200002000)<br/>([1.0.0-5.1.0] 0x8000000000100008) || CanListApplicationAccessibleSaveDataOwnerId || ListApplicationAccessibleSaveDataOwnerId | + | | [5.0.0+] 0x27 || 0x8000000240002000 <br/>([6.0.0-7.0.1] 0x8000000200002000)<br/>([1.0.0-5.1.0] 0x8000000000100008) || CanListAccessibleSaveDataOwnerId || ListAccessibleSaveDataOwnerId |
| |- | | |- |
| | [5.0.0+] 0x28 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]] | | | [5.0.0+] 0x28 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]] |
Line 468: |
Line 468: |
| | [5.0.0+] 0x2D || 0x8000000000010000<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]] | | | [5.0.0+] 0x2D || 0x8000000000010000<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]] |
| |- | | |- |
− | | [5.0.0+] 0x2E || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]] | + | | [5.0.0+] 0x2E || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureDetectionEventNotifier]] |
| |- | | |- |
| | [5.0.0+] 0x2F || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]] | | | [5.0.0+] 0x2F || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]] |
Line 484: |
Line 484: |
| | [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]] | | | [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]] |
| |- | | |- |
− | | [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateGameCardDetectionEvent, SetSimulationEvent, ClearSimulationEvent | + | | [6.0.0+] 0x36 || 0x4000000000000000 || CanSimulateGameCardDetectionEvent || SimulateDeviceDetectionEvent, SetSimulationEvent, ClearSimulationEvent |
| |- | | |- |
| | [6.0.0+] 0x37 || 0x8000000000000000<br/>([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget | | | [6.0.0+] 0x37 || 0x8000000000000000<br/>([6.0.0-6.2.0] 0x8000000000080000) || CanSetDataStorageRedirectTarget || SetDataStorageRedirectTarget |
Line 622: |
Line 622: |
| [[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1). | | [[NS_Services|NS]]-module reads the 0x10 bytes from SdCard:/Nintendo/Contents/private, and compares them to the first 0x10 bytes of the ns_appman:/private (in [[Flash_Filesystem#System_Savegames|system savedata]] 0x8000000000000043). If they match, NS calls this command using bytes 0x10-0x20 from ns_appman:/private. The rest of this file (0x1F0 bytes total) is (usually/always?) all-zero (however in some cases the byte at offset 0x20 is value 0x1). |
| | | |
− | == OpenAccessFailureResolver == | + | == OpenAccessFailureDetectionEventNotifier == |
| Takes 8-bytes of input and returns an [[#IEventNotifier]]. | | Takes 8-bytes of input and returns an [[#IEventNotifier]]. |
| | | |
Line 900: |
Line 900: |
| | 208 || GetGameCardIdSet | | | 208 || GetGameCardIdSet |
| |- | | |- |
− | | 209 || WriteToGameCard | + | | 209 || WriteToGameCardDirectly |
| |- | | |- |
| | 210 || SetVerifyWriteEnalbleFlag | | | 210 || SetVerifyWriteEnalbleFlag |
Line 932: |
Line 932: |
| | 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output) | | | 402 || [6.0.0+] GetSdmmcConnectionStatus (Takes a total of 4-bytes of input, returns a total of 8-bytes of output) |
| |- | | |- |
− | | 500 || [6.0.0+] SetSimulationEvent (Takes a total of 0x14-bytes of input, no output) | + | | 500 || [6.0.0+] SetDeviceSimulationEvent (Takes a total of 0x14-bytes of input, no output) |
| |- | | |- |
− | | 501 || [6.0.0+] ClearSimulationEvent (Takes a total of 4-bytes of input, no output) | + | | 501 || [6.0.0+] ClearDeviceSimulationEvent (Takes a total of 4-bytes of input, no output) |
| |} | | |} |
| | | |
Line 992: |
Line 992: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#Initialize]] | + | | 0 || [[#GetSaveDataInfo]] |
| |- | | |- |
| | 1 || [[#GetRestSize]] | | | 1 || [[#GetRestSize]] |
Line 1,003: |
Line 1,003: |
| This was added with [[4.0.0]]. | | This was added with [[4.0.0]]. |
| | | |
− | == Initialize == | + | == GetSaveDataInfo == |
| No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer. | | No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer. |
| | | |
Line 1,024: |
Line 1,024: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#Initialize]] | + | | 0 || [[#GetSaveDataInfo]] |
| |- | | |- |
| | 1 || [[#GetRestSize]] | | | 1 || [[#GetRestSize]] |
Line 1,035: |
Line 1,035: |
| This was added with [[4.0.0]]. | | This was added with [[4.0.0]]. |
| | | |
− | == Initialize == | + | == GetSaveDataInfo == |
− | No input/output, takes a type-0x1A [[#SaveDataInfo]] output buffer. | + | No input/output, takes a type-0x1A [[#GetSaveDataInfo]] output buffer. |
| | | |
| The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw. | | The actual name for this is the SaveDataImporter constructor. This is used automatically after [[#OpenSaveDataImporter]] by official sw. |
Line 1,060: |
Line 1,060: |
| | 16 || [[#SetKeySeedPackage]] | | | 16 || [[#SetKeySeedPackage]] |
| |- | | |- |
− | | 32 || [[#OpenSaveDataFullExporter]] | + | | 32 || [[#OpenSaveDataExporter]] |
| |- | | |- |
− | | 33 || [[#OpenSaveDataDiffExporter]] | + | | 33 || [[#OpenSaveDataExporterForDiffExport]] |
| |- | | |- |
| | 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]] | | | 34 || [6.0.0+] [[#OpenSaveDataExporterByContext]] |
| |- | | |- |
− | | 64 || [[#OpenSaveDataFullImporter]] | + | |rowspan="2"| 64 || [5.0.0-5.1.0] OpenSaveDataImporter |
| + | |- |
| + | | [6.0.0+] [[#OpenSaveDataImporterDeprecated]] |
| |- | | |- |
− | | 65 || [[#OpenSaveDataDiffImporter]] | + | | 65 || [[#OpenSaveDataImporterForDiffImport]] |
| |- | | |- |
− | | 66 || [6.0.0+] [[#OpenSaveDataDuplicateDiffImporter]] | + | | 66 || [6.0.0+] [[#OpenSaveDataImporterForDuplicateDiffImport]] |
| |- | | |- |
| | 67 || [6.0.0+] [[#OpenSaveDataImporter]] | | | 67 || [6.0.0+] [[#OpenSaveDataImporter]] |
Line 1,087: |
Line 1,089: |
| No input/output, takes a type-0x5 input buffer containing the '''KeySeedPackage'''. | | No input/output, takes a type-0x5 input buffer containing the '''KeySeedPackage'''. |
| | | |
− | == OpenSaveDataFullExporter == | + | == OpenSaveDataExporter == |
| Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]]. | | Takes an input u8 [[#SaveDataSpaceId]] and u64. Returns an [[#ISaveDataDivisionExporter]]. |
| | | |
− | == OpenSaveDataDiffExporter == | + | == OpenSaveDataExporterForDiffExport == |
| Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]]. | | Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionExporter]]. |
| | | |
Line 1,096: |
Line 1,098: |
| No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]]. | | No input/output, takes a type-0x5 input buffer, returns an [[#ISaveDataDivisionExporter]]. |
| | | |
− | == OpenSaveDataFullImporter == | + | == OpenSaveDataImporterDeprecated == |
| Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]]. | | Takes an input u8 [[#SaveDataSpaceId]], a 0x10-byte userID, and a type-0x5 input buffer [[#InitialDataVersion2]]. Returns an [[#ISaveDataDivisionImporter]]. |
| | | |
− | == OpenSaveDataDiffImporter == | + | == OpenSaveDataImporterForDiffImport == |
| Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]]. | | Takes an input u8 [[#SaveDataSpaceId]], an u64, and a type-0x5 input buffer [[#InitialDataVersion2]], returns an [[#ISaveDataDivisionImporter]]. |
| | | |
− | == OpenSaveDataDuplicateDiffImporter == | + | == OpenSaveDataImporterForDuplicateDiffImport == |
| Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]]. | | Takes an input u8 and an u64, and a type-0x5 input buffer, returns an [[#ISaveDataDivisionImporter]]. |
| | | |
Line 1,235: |
Line 1,237: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 1 || ? (Takes an input [[#IFilesystem]], no output) | + | | 1 || Add (Takes an input [[#IFilesystem]], no output) |
| |- | | |- |
− | | 2 || ? (No input/output) | + | | 2 || Commit (No input/output) |
| |} | | |} |
| | | |