Filesystem services: Difference between revisions

Line 354: Line 354:
! Type(s) || Mask || Name || Used by
! Type(s) || Mask || Name || Used by
|-
|-
| 0x0 || 0x8000000000000080 || BisCache || [[#InvalidateBisCache]]
| 0x0 || 0x8000000000000080 || CanInvalidateBisCache || [[#InvalidateBisCache]]
|-
|-
| 0x1 || 0x8000000000000080 || EraseMmc || [[#EraseMmc]]
| 0x1 || 0x8000000000000080 || CanEraseMmc || [[#EraseMmc]]
|-
|-
| 0x2 || 0x8000000000000010 || GameCardCertificate || [[#GetGameCardDeviceCertificate]]
| 0x2 || 0x8000000000000010 || CanGetGameCardDeviceCertificate || [[#GetGameCardDeviceCertificate]]
|-
|-
| 0x3 || 0x8000000000000010 || GameCardIdSet || [[#GetGameCardIdSet]]
| 0x3 || 0x8000000000000010 || CanGetGameCardIdSet || [[#GetGameCardIdSet]]
|-
|-
| 0x4 || 0x8000000000000200 || GameCardDriver || [[#FinalizeGameCardDriver]]
| 0x4 || 0x8000000000000200 || CanFinalizeGameCardDriver || [[#FinalizeGameCardDriver]]
|-
|-
| 0x5 || 0x8000000000000200 || GameCardAsic || [[#GetGameCardAsicInfo]]
| 0x5 || 0x8000000000000200 || CanGetGameCardAsicInfo || [[#GetGameCardAsicInfo]]
|-
|-
| 0x6 || 0x8000000000002020 || SaveDataCreate || [[#CreateSaveDataFileSystem]]
| 0x6 || 0x8000000000002020 || CanCreateSaveData || [[#CreateSaveDataFileSystem]]
|-
|-
| 0x7 || 0x8000000000000060 || SaveDataDelete0 || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]
| 0x7 || 0x8000000000000060 || CanDeleteSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]
|-
|-
| 0x8 || 0x8000000000000028 || SystemSaveDataCreate0 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]
| 0x8 || 0x8000000000000028 || CanCreateSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]
|-
|-
| 0x9 || 0x8000000000000020 || SystemSaveDataCreate1 || [[#CreateSaveDataFileSystemBySystemSaveDataId]]
| 0x9 || 0x8000000000000020 || CanCreateOthersSystemSaveData || [[#CreateSaveDataFileSystemBySystemSaveDataId]]
|-
|-
| 0xA || 0x8000000000004028 || SaveDataDelete1 || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]
| 0xA || 0x8000000000004028 || CanDeleteSystemSaveData || [[#DeleteSaveDataFileSystem]], [[#RegisterSaveDataFileSystemAtomicDeletion]]
|-
|-
| 0xB || 0x8000000000000060 || SaveDataInfoReader0 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]
| 0xB || 0x8000000000000060 || CanOpenSaveDataInfoReader || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]
|-
|-
| 0xC || 0x8000000000004020 || SaveDataInfoReader1 || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]
| 0xC || 0x8000000000004020 || CanOpenSaveDataInfoReaderForSystem || [[#OpenSaveDataInfoReaderBySaveDataSpaceId]], [[#OpenSaveDataInfoReader]]
|-
|-
| 0xD || 0x8000000000000040<br/>([1.0.0-5.1.0] 0x8000000000020000) || || cmd68
| 0xD || 0x8000000000000040<br/>([1.0.0-5.1.0] 0x8000000000020000) || || cmd68
|-
|-
| 0xE || 0x8000000000020000<br/>([1.0.0-5.1.0] 0x8000000000000400) || SaveDataMeta || [[#OpenSaveDataMetaFile]]
| 0xE || 0x8000000000020000<br/>([1.0.0-5.1.0] 0x8000000000000400) || CanOpenSaveDataMetaFile || [[#OpenSaveDataMetaFile]]
|-
|-
| 0xF || 0x8000000000000400<br/>([1.0.0-5.1.0] 0x8000000000004060) || PosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]
| 0xF || 0x8000000000000400<br/>([1.0.0-5.1.0] 0x8000000000004060) || CanSetCurrentPosixTime || [[#SetCurrentPosixTime]], [[#SetCurrentPosixTimeWithTimeDifference]]
|-
|-
| 0x10 || 0x8000000000004060<br/>([1.0.0-5.1.0] 0x8000000000080000) || SaveDataExtraData_Read || [[#ReadSaveDataFileSystemExtraData]]
| 0x10 || 0x8000000000004060<br/>([1.0.0-5.1.0] 0x8000000000080000) || CanReadSaveDataFileSystemExtraData || [[#ReadSaveDataFileSystemExtraData]]
|-
|-
| 0x11 || 0x8000000000080000 || GlobalAccessMode || [[#SetGlobalAccessMode]]
| 0x11 || 0x8000000000080000 || CanSetGlobalAccessLogMode || [[#SetGlobalAccessMode]]
|-
|-
| 0x12 || 0x8000000000080000<br/>([1.0.0-5.1.0] Invalid) || SpeedEmulationMode || [[#SetSpeedEmulationMode]]
| 0x12 || 0x8000000000080000<br/>([1.0.0-5.1.0] Invalid) || CanSetSpeedEmulationMode || [[#SetSpeedEmulationMode]]
|-
|-
| 0x13 || Invalid<br/>([1.0.0-5.1.0] 0xC000000000800000) || ||  
| 0x13 || Invalid<br/>([1.0.0-5.1.0] 0xC000000000800000) || ||  
|-
|-
| 0x14 || 0xC000000000800000<br/>([1.0.0-5.1.0] 0xC000000001000000) || PaddingFiles || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]]  
| 0x14 || 0xC000000000800000<br/>([1.0.0-5.1.0] 0xC000000001000000) || CanFillBis || [[#CreatePaddingFile]], [[#DeleteAllPaddingFiles]]  
|-
|-
| 0x15 || 0xC000000001000000<br/>([5.0.0-5.1.0] 0x8000000001000060)<br/>([1.0.0-4.1.0] 0xC000000002000000) || SaveDataCorrupt0 || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]
| 0x15 || 0xC000000001000000<br/>([5.0.0-5.1.0] 0x8000000001000060)<br/>([1.0.0-4.1.0] 0xC000000002000000) || CanCorruptSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]
|-
|-
| [2.0.0+] 0x16 || 0x8000000001000060<br/>([5.0.0-5.1.0] 0x8000000000000060)<br/>([1.0.0-4.1.0] 0x8000000004000000) || SaveDataCorrupt1 || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]
| [2.0.0+] 0x16 || 0x8000000001000060<br/>([5.0.0-5.1.0] 0x8000000000000060)<br/>([1.0.0-4.1.0] 0x8000000004000000) || CanCorruptSystemSaveData || [[#CorruptSaveDataFileSystem]], [[#CorruptSaveDataFileSystemBySaveDataSpaceId]]
|-
|-
| [2.0.0+] 0x17 || 0x8000000000000060<br/>([5.0.0-5.1.0] 0xC000000002000000)<br/>([1.0.0-4.1.0] 0x8000000008000000) || SaveDataVerify || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]
| [2.0.0+] 0x17 || 0x8000000000000060<br/>([5.0.0-5.1.0] 0xC000000002000000)<br/>([1.0.0-4.1.0] 0x8000000008000000) || CanVerifySaveData || [[#VerifySaveDataFileSystem]], [[#VerifySaveDataFileSystemBySaveDataSpaceId]]
|-
|-
| [2.0.0+] 0x18 || 0xC000000002000000<br/>([5.0.0-5.1.0] 0x8000000004000000)<br/>([1.0.0-4.1.0] 0x8000000010000000) || SaveData_SystemManagement || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]
| [2.0.0+] 0x18 || 0xC000000002000000<br/>([5.0.0-5.1.0] 0x8000000004000000)<br/>([1.0.0-4.1.0] 0x8000000010000000) || CanDebugSaveData || [[#CreateSaveDataFileSystem]], [[#OpenSaveDataFileSystem]], [[#SetSaveDataRootPath]]
|-
|-
| [2.0.0+] 0x19 || 0x8000000004000000<br/>([5.0.0-5.1.0] 0x8000000008000000)<br/>([1.0.0-4.1.0] 0x8000000000000800) || SdCardFormat || [[#FormatSdCardFileSystem]]
| [2.0.0+] 0x19 || 0x8000000004000000<br/>([5.0.0-5.1.0] 0x8000000008000000)<br/>([1.0.0-4.1.0] 0x8000000000000800) || CanFormatSdCard || [[#FormatSdCardFileSystem]]
|-
|-
| [2.0.0+] 0x1A || 0x8000000008000000<br/>([5.0.0-5.1.0] 0x8000000010000000)<br/>([1.0.0-4.1.0] 0x8000000000004020) || RightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]
| [2.0.0+] 0x1A || 0x8000000008000000<br/>([5.0.0-5.1.0] 0x8000000010000000)<br/>([1.0.0-4.1.0] 0x8000000000004020) || CanGetRightsId || [[#GetRightsId]], [[#GetRightsIdAndKeyGenerationByPath]], [[#GetRightsIdByPath]]
|-
|-
| [3.0.0+] 0x1B || 0x8000000010000000<br/>([5.0.0-5.1.0] 0x8000000000000800)<br/>([1.0.0-4.1.0] 0x8000000000002020) || ExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]
| [3.0.0+] 0x1B || 0x8000000010000000<br/>([5.0.0-5.1.0] 0x8000000000000800)<br/>([1.0.0-4.1.0] 0x8000000000002020) || CanRegisterExternalKey || [[#RegisterExternalKey]], [[#UnregisterAllExternalKey]]
|-
|-
| [3.0.0+] 0x1C || 0x8000000000000800<br/>([5.0.0-5.1.0] 0x8000000000004020)<br/>([1.0.0-4.1.0] 0x8000000000000028) || SdCardEncryptionSeed || [[#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]], [[#WriteSaveDataFileSystemExtraData2]]
|-
|-
| [4.0.0+] 0x1E || 0x8000000000004020<br/>([5.0.0-5.1.0] 0x8000000000002020)<br/>([1.0.0-4.1.0] 0x8000000040000000) || SaveDataExtraData_Write1 || [[#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]], [[#WriteSaveDataFileSystemExtraData2]]
|-
|-
| [4.0.0+] 0x1F || 0x8000000000000020<br/>([5.0.0-5.1.0] 0x8000000000000028)<br/>([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write2 || [[#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]], [[#WriteSaveDataFileSystemExtraData2]]
|-
|-
| [4.0.0+] 0x20 || 0x8000000000000000<br/>([5.0.0-5.1.0] 0x8000000020000000)<br/>([1.0.0-4.1.0] 0x8000000000000000) || SaveDataExtraData_Write3 || [[#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]], [[#WriteSaveDataFileSystemExtraData2]]
|-
|-
| [5.0.0+] 0x21 || 0x8000000000002020<br/>([1.0.0-5.1.0] 0x8000000040000000) || SaveDataExtend0 || [[#ExtendSaveDataFileSystem]]
| [5.0.0+] 0x21 || 0x8000000000002020<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanExtendSaveData || [[#ExtendSaveDataFileSystem]]
|-
|-
| [5.0.0+] 0x22 || 0x8000000000000028<br/>([1.0.0-5.1.0] 0x0000000080000002) || SaveDataExtend1 || [[#ExtendSaveDataFileSystem]]
| [5.0.0+] 0x22 || 0x8000000000000028<br/>([1.0.0-5.1.0] 0x0000000080000002) || CanExtendSystemSaveData || [[#ExtendSaveDataFileSystem]]
|-
|-
| [5.0.0+] 0x23 || 0x8000000020000000<br/>([1.0.0-5.1.0] 0x8000000000000000) || UpdatePartitionRegister || [[#RegisterUpdatePartition]]
| [5.0.0+] 0x23 || 0x8000000020000000<br/>([1.0.0-5.1.0] 0x8000000000000000) || CanRegisterUpdatePartition || [[#RegisterUpdatePartition]]
|-
|-
| [5.0.0+] 0x24 || 0x8000000040000000<br/>([1.0.0-5.1.0] 0x8000000000000000) || SaveDataTransfer || [[#OpenSaveDataTransferManager]]
| [5.0.0+] 0x24 || 0x8000000040000000<br/>([1.0.0-5.1.0] 0x8000000000000000) || CanOpenSaveDataTransferManager || [[#OpenSaveDataTransferManager]]
|-
|-
| [5.0.0+] 0x25 || 0x8000000200000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || SaveDataTransferVersion2 || [[#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) || SaveDataTransferProhibiter || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]
| [5.0.0+] 0x26 || 0x8000000200002000<br/>([1.0.0-5.1.0] 0x8000000080000110) || CanOpenSaveDataTransferProhibiterForCloudBackUp || [[#OpenSaveDataTransferProhibiterForCloudBackUp]]
|-
|-
| [5.0.0+] 0x27 || 0x8000000200002000<br/>([1.0.0-5.1.0] 0x8000000000100008) || || cmd84
| [5.0.0+] 0x27 || 0x8000000200002000<br/>([1.0.0-5.1.0] 0x8000000000100008) || || cmd84
|-
|-
| [5.0.0+] 0x28 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x8000000080010000) || MmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]
| [5.0.0+] 0x28 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x8000000080010000) || CanControlMmcPatrol || [[#SuspendMmcPatrol]], [[#ResumeMmcPatrol]]
|-
|-
| [5.0.0+] 0x29 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x0000000080000001) || SaveDataTransferKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]
| [5.0.0+] 0x29 || 0x8000000000000000<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanOverrideSaveDataTransferTokenSignVerificationKey || [[#OverrideSaveDataTransferTokenSignVerificationKey]]
|-
|-
| [5.0.0+] 0x2A || 0x8000000080200000<br/>([1.0.0-5.1.0] 0x0000000080000001) || SdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]
| [5.0.0+] 0x2A || 0x8000000080200000<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSdCardDetectionEventNotifier || [[#OpenSdCardDetectionEventNotifier]]
|-
|-
| [5.0.0+] 0x2B || 0x8000000080000110<br/>([1.0.0-5.1.0] 0x0000000080000001) || GameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]
| [5.0.0+] 0x2B || 0x8000000080000110<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanOpenGameCardDetectionEventNotifier || [[#OpenGameCardDetectionEventNotifier]]
|-
|-
| [5.0.0+] 0x2C || 0x8000000000100008<br/>([1.0.0-5.1.0] 0x0000000080000001) || SystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]
| [5.0.0+] 0x2C || 0x8000000000100008<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanOpenSystemDataUpdateEventNotifier || [[#OpenSystemDataUpdateEventNotifier]]
|-
|-
| [5.0.0+] 0x2D || 0x8000000000010000<br/>([1.0.0-5.1.0] 0x0000000080000001) || SystemDataUpdateEventNotify || [[#NotifySystemDataUpdateEvent]]
| [5.0.0+] 0x2D || 0x8000000000010000<br/>([1.0.0-5.1.0] 0x0000000080000001) || CanNotifySystemDataUpdateEvent || [[#NotifySystemDataUpdateEvent]]
|-
|-
| [5.0.0+] 0x2E || 0x0000000080000001<br/>([1.0.0-5.1.0] 0x8000000040000000) || AccessFailureResolver || [[#OpenAccessFailureResolver]]
| [5.0.0+] 0x2E || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000040000000) || CanOpenAccessFailureDetectionEventNotifier || [[#OpenAccessFailureResolver]]
|-
|-
| [5.0.0+] 0x2F || 0x0000000080000001<br/>([1.0.0-5.1.0] 0x8000000080200000) || AccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]
| [5.0.0+] 0x2F || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000080200000) || CanGetAccessFailureDetectionEvent || [[#GetAccessFailureDetectionEvent]]
|-
|-
| [5.1.0+] 0x30 || 0x0000000080000001<br/>([1.0.0-5.1.0] 0x8000000080080000) || AccessFailureDetected || [[#IsAccessFailureDetected]]  
| [5.1.0+] 0x30 || 0x8000000100000000<br/>([1.0.0-5.1.0] 0x8000000080080000) || CanIsAccessFailureDetected || [[#IsAccessFailureDetected]]  
|-
|-
| [6.0.0+] 0x31 || 0x0000000080000001 || AccessFailureResolve || [[#ResolveAccessFailure]]
| [6.0.0+] 0x31 || 0x8000000100000000 || CanResolveAccessFailure || [[#ResolveAccessFailure]]
|-
|-
| [6.0.0+] 0x32 || 0x0000000080000001 || AccessFailureAbandon || [[#AbandonAccessFailure]]
| [6.0.0+] 0x32 || 0x8000000100000000 || CanAbandonAccessFailure || [[#AbandonAccessFailure]]
|-
|-
| [6.0.0+] 0x33 || 0x8000000040000000 || SaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]
| [6.0.0+] 0x33 || 0x8000000040000000 || CanQuerySaveDataInternalStorageTotalSize || [[#QuerySaveDataInternalStorageTotalSize]]
|-
|-
| [6.0.0+] 0x34 || 0x8000000200000020 || SaveDataCommitId || [[#GetSaveDataCommitId]]
| [6.0.0+] 0x34 || 0x8000000200000020 || CanGetSaveDataCommitId || [[#GetSaveDataCommitId]]
|-
|-
| [6.0.0+] 0x35 || 0x8000000000200000 || SdCardAccessibility || [[#SetSdCardAccessibility]]
| [6.0.0+] 0x35 || 0x8000000000200000 || CanSetSdCardAccessibility || [[#SetSdCardAccessibility]]
|-
|-
| [6.0.0+] 0x36 || 0x4000000000000000 || || cmd520, IDeviceOperator cmd500, IDeviceOperator cmd501  
| [6.0.0+] 0x36 || 0x4000000000000000 || || cmd520, IDeviceOperator cmd500, IDeviceOperator cmd501