Filesystem services: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Services]] | [[Category:Services]] | ||
= Filesystem service "fs:USER" = | = Filesystem service "fs:USER" = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 5: | Line 6: | ||
! Command Header | ! Command Header | ||
! Description | ! Description | ||
! Required exheader accessinfo bitmask | |||
|- | |- | ||
| 0x000100C6 | | 0x000100C6 | ||
| Dummy1 | | Dummy1 | ||
| None | |||
|- | |- | ||
| 0x040100C4 | | 0x040100C4 | ||
| Control | | Control | ||
| None | |||
|- | |- | ||
| 0x08010002 | | 0x08010002 | ||
| [[FS:Initialize|Initialize]] | | [[FS:Initialize|Initialize]] | ||
| None | |||
|- | |- | ||
| 0x080201C2 | | 0x080201C2 | ||
| [[FS:OpenFile|OpenFile]] | | [[FS:OpenFile|OpenFile]] | ||
| None | |||
|- | |- | ||
| 0x08030204 | | 0x08030204 | ||
| [[FS:OpenFileDirectly|OpenFileDirectly]] | | [[FS:OpenFileDirectly|OpenFileDirectly]] | ||
| None | |||
|- | |- | ||
| 0x08040142 | | 0x08040142 | ||
| [[FS:DeleteFile|DeleteFile]] | | [[FS:DeleteFile|DeleteFile]] | ||
| None | |||
|- | |- | ||
| 0x08050244 | | 0x08050244 | ||
| RenameFile | | RenameFile | ||
| None | |||
|- | |- | ||
| 0x08060142 | | 0x08060142 | ||
| DeleteDirectory | | DeleteDirectory | ||
| None | |||
|- | |- | ||
| 0x08070142 | | 0x08070142 | ||
| DeleteDirectoryRecursively | | DeleteDirectoryRecursively | ||
| None | |||
|- | |- | ||
| 0x08080202 | | 0x08080202 | ||
| CreateFile | | CreateFile | ||
| None | |||
|- | |- | ||
| 0x08090182 | | 0x08090182 | ||
| [[FS:CreateDirectory|CreateDirectory]] | | [[FS:CreateDirectory|CreateDirectory]] | ||
| None | |||
|- | |- | ||
| 0x080A0244 | | 0x080A0244 | ||
| RenameDirectory | | RenameDirectory | ||
| None | |||
|- | |- | ||
| 0x080B0102 | | 0x080B0102 | ||
| [[FS:OpenDirectory|OpenDirectory]] | | [[FS:OpenDirectory|OpenDirectory]] | ||
| None | |||
|- | |- | ||
| 0x080C00C2 | | 0x080C00C2 | ||
| [[FS:OpenArchive|OpenArchive]] | | [[FS:OpenArchive|OpenArchive]] | ||
| None | |||
|- | |- | ||
| 0x080D0144 | | 0x080D0144 | ||
| ControlArchive | | ControlArchive | ||
| None | |||
|- | |- | ||
| 0x080E0080 | | 0x080E0080 | ||
| [[FS:CloseArchive|CloseArchive]] | | [[FS:CloseArchive|CloseArchive]] | ||
| None | |||
|- | |- | ||
| 0x080F0180 | | 0x080F0180 | ||
| FormatThisUserSaveData | | FormatThisUserSaveData | ||
| None | |||
|- | |- | ||
| 0x08100200 | | 0x08100200 | ||
| CreateSystemSaveData | | CreateSystemSaveData | ||
| 0x4, for when the input saveID doesn't match the exheader saveID. | |||
|- | |- | ||
| 0x08110040 | | 0x08110040 | ||
| DeleteSystemSaveData | | DeleteSystemSaveData | ||
| 0x1004, for when the input saveID doesn't match the exheader saveID. | |||
|- | |- | ||
| 0x08120080 | | 0x08120080 | ||
| GetFreeBytes | | GetFreeBytes | ||
| None | |||
|- | |- | ||
| 0x08130000 | | 0x08130000 | ||
| GetCardType | | GetCardType | ||
| 0x1017 | |||
|- | |- | ||
| 0x08140000 | | 0x08140000 | ||
| GetSdmcArchiveResource | | GetSdmcArchiveResource | ||
| None | |||
|- | |- | ||
| 0x08150000 | | 0x08150000 | ||
| GetNandArchiveResource | | GetNandArchiveResource | ||
| None | |||
|- | |- | ||
| 0x08160000 | | 0x08160000 | ||
| GetSdmcFatfsError | | GetSdmcFatfsError | ||
| 0x2 | |||
|- | |- | ||
| 0x08170000 | | 0x08170000 | ||
| IsSdmcDetected | | IsSdmcDetected | ||
| None | |||
|- | |- | ||
| 0x08180000 | | 0x08180000 | ||
| IsSdmcWritable | | IsSdmcWritable | ||
| None | |||
|- | |- | ||
| 0x08190042 | | 0x08190042 | ||
| GetSdmcCid | | GetSdmcCid | ||
| 0x2 | |||
|- | |- | ||
| 0x081A0042 | | 0x081A0042 | ||
| GetNandCid | | GetNandCid | ||
| 0x2 | |||
|- | |- | ||
| 0x081B0000 | | 0x081B0000 | ||
| GetSdmcSpeedInfo | | GetSdmcSpeedInfo | ||
| 0x2 | |||
|- | |- | ||
| 0x081C0000 | | 0x081C0000 | ||
| GetNandSpeedInfo | | GetNandSpeedInfo | ||
| 0x2 | |||
|- | |- | ||
| 0x081D0042 | | 0x081D0042 | ||
| GetSdmcLog | | GetSdmcLog | ||
| 0x2 | |||
|- | |- | ||
| 0x081E0042 | | 0x081E0042 | ||
| GetNandLog | | GetNandLog | ||
| 0x2 | |||
|- | |- | ||
| 0x081F0000 | | 0x081F0000 | ||
| ClearSdmcLog | | ClearSdmcLog | ||
| 0x2 | |||
|- | |- | ||
| 0x08200000 | | 0x08200000 | ||
| ClearNandLog | | ClearNandLog | ||
| 0x2 | |||
|- | |- | ||
| 0x08210000 | | 0x08210000 | ||
| CardSlotIsInserted | | CardSlotIsInserted | ||
| 0x1017 | |||
|- | |- | ||
| 0x08220000 | | 0x08220000 | ||
| CardSlotPowerOn | | CardSlotPowerOn | ||
| 0x2 | |||
|- | |- | ||
| 0x08230000 | | 0x08230000 | ||
| CardSlotPowerOff | | CardSlotPowerOff | ||
| 0x2 | |||
|- | |- | ||
| 0x08240000 | | 0x08240000 | ||
| CardSlotGetCardIFPowerStatus | | CardSlotGetCardIFPowerStatus | ||
| 0x2 | |||
|- | |- | ||
| 0x08250040 | | 0x08250040 | ||
| CardNorDirectCommand | | CardNorDirectCommand | ||
| 0x2 | |||
|- | |- | ||
| 0x08260080 | | 0x08260080 | ||
| CardNorDirectCommandWithAddress | | CardNorDirectCommandWithAddress | ||
| 0x2 | |||
|- | |- | ||
| 0x08270082 | | 0x08270082 | ||
| CardNorDirectRead | | CardNorDirectRead | ||
| 0x2 | |||
|- | |- | ||
| 0x082800C2 | | 0x082800C2 | ||
| CardNorDirectReadWithAddress | | CardNorDirectReadWithAddress | ||
| 0x2 | |||
|- | |- | ||
| 0x08290082 | | 0x08290082 | ||
| CardNorDirectWrite | | CardNorDirectWrite | ||
| 0x2 | |||
|- | |- | ||
| 0x082A00C2 | | 0x082A00C2 | ||
| CardNorDirectWriteWithAddress | | CardNorDirectWriteWithAddress | ||
| 0x2 | |||
|- | |- | ||
| 0x082B00C2 | | 0x082B00C2 | ||
| CardNorDirectRead_4xIO | | CardNorDirectRead_4xIO | ||
| 0x2 | |||
|- | |- | ||
| 0x082C0082 | | 0x082C0082 | ||
| CardNorDirectCpuWriteWithoutVerify | | CardNorDirectCpuWriteWithoutVerify | ||
| 0x2 | |||
|- | |- | ||
| 0x082D0040 | | 0x082D0040 | ||
| CardNorDirectSectorEraseWithoutVerify | | CardNorDirectSectorEraseWithoutVerify | ||
| 0x2 | |||
|- | |- | ||
| 0x082E0040 | | 0x082E0040 | ||
| GetProductInfo | | GetProductInfo | ||
| 0x1005 | |||
|- | |- | ||
| 0x082F0040 | | 0x082F0040 | ||
| [[FS:GetProgramLaunchInfo|GetProgramLaunchInfo]] | | [[FS:GetProgramLaunchInfo|GetProgramLaunchInfo]] | ||
| 0x1005 | |||
|- | |- | ||
| 0x08300182 | | 0x08300182 | ||
| CreateExtSaveData | | CreateExtSaveData | ||
| 0xC, for when the input extdataID doesn't match the exheader extdataID. | |||
|- | |- | ||
| 0x08310180 | | 0x08310180 | ||
| CreateSharedExtSaveData | | CreateSharedExtSaveData | ||
| 0x1005 | |||
|- | |- | ||
| 0x08320102 | | 0x08320102 | ||
| [[FS:ReadExtSaveDataIcon|ReadExtSaveDataIcon]] | | [[FS:ReadExtSaveDataIcon|ReadExtSaveDataIcon]] | ||
| 0x100D, for when the input extdataID doesn't match the exheader extdataID. | |||
|- | |- | ||
| 0x08330082 | | 0x08330082 | ||
| EnumerateExtSaveData | | EnumerateExtSaveData | ||
| 0x1005 | |||
|- | |- | ||
| 0x08340082 | | 0x08340082 | ||
| EnumerateSharedExtSaveData | | EnumerateSharedExtSaveData | ||
| 0x1005 | |||
|- | |- | ||
| 0x08350080 | | 0x08350080 | ||
| DeleteExtSaveData | | DeleteExtSaveData | ||
| 0x100D, for when the input extdataID doesn't match the exheader extdataID. | |||
|- | |- | ||
| 0x08360080 | | 0x08360080 | ||
| DeleteSharedExtSaveData | | DeleteSharedExtSaveData | ||
| 0x1005 | |||
|- | |- | ||
| 0x08370040 | | 0x08370040 | ||
| SetCardSpiBaudRate | | SetCardSpiBaudRate | ||
| 0x2 | |||
|- | |- | ||
| 0x08380040 | | 0x08380040 | ||
| SetCardSpiBusMode | | SetCardSpiBusMode | ||
| 0x2 | |||
|- | |- | ||
| 0x08390000 | | 0x08390000 | ||
| SendInitializeInfoTo9 | | SendInitializeInfoTo9 | ||
| None | |||
|- | |- | ||
| 0x083A0100 | | 0x083A0100 | ||
| GetSpecialContentIndex | | GetSpecialContentIndex | ||
| 0x1005 | |||
|- | |- | ||
| 0x083B00C2 | | 0x083B00C2 | ||
| GetLegacyRomHeader | | GetLegacyRomHeader | ||
| 0x1015 | |||
|- | |- | ||
| 0x083C00C2 | | 0x083C00C2 | ||
| GetLegacyBannerData | | GetLegacyBannerData | ||
| 0x1015 | |||
|- | |- | ||
| 0x083D0100 | | 0x083D0100 | ||
| CheckAuthorityToAccessExtSaveData | | CheckAuthorityToAccessExtSaveData | ||
| 0x44 | |||
|- | |- | ||
| 0x083E00C2 | | 0x083E00C2 | ||
| QueryTotalQuotaSize | | QueryTotalQuotaSize | ||
| None | |||
|- | |- | ||
| 0x083F00C0 | | 0x083F00C0 | ||
| GetExtDataBlockSize | | GetExtDataBlockSize | ||
| None | |||
|- | |- | ||
| 0x08400040 | | 0x08400040 | ||
Line 206: | Line 273: | ||
| 0x08410000 | | 0x08410000 | ||
| DeleteSdmcRoot | | DeleteSdmcRoot | ||
| 0x1005 | |||
|- | |- | ||
| 0x08420040 | | 0x08420040 | ||
| DeleteAllExtSaveDataOnNand | | DeleteAllExtSaveDataOnNand | ||
| 0x1005 | |||
|- | |- | ||
| 0x08430000 | | 0x08430000 | ||
| [[FS:InitializeCtrFileSystem|InitializeCtrFileSystem]] | | [[FS:InitializeCtrFileSystem|InitializeCtrFileSystem]] | ||
| None | |||
|- | |- | ||
| 0x08440000 | | 0x08440000 | ||
| CreateSeed | | CreateSeed | ||
| 0x2 | |||
|- | |- | ||
| 0x084500C2 | | 0x084500C2 | ||
| GetFormatInfo | | GetFormatInfo | ||
| ? | |||
|- | |- | ||
| 0x08460102 | | 0x08460102 | ||
| GetLegacyRomHeader2 | | GetLegacyRomHeader2 | ||
| 0x1015 | |||
|- | |- | ||
| 0x08470180 | | 0x08470180 | ||
| FormatCtrCardUserSaveData | | FormatCtrCardUserSaveData | ||
| 0x6 | |||
|- | |- | ||
| 0x08480042 | | 0x08480042 | ||
| GetSdmcCtrRootPath | | GetSdmcCtrRootPath | ||
| 0x100D | |||
|- | |- | ||
| 0x08490040 | | 0x08490040 | ||
| GetArchiveResource | | GetArchiveResource | ||
| ? | |||
|- | |- | ||
| 0x084A0002 | | 0x084A0002 | ||
| ExportIntegrityVerificationSeed | | ExportIntegrityVerificationSeed | ||
| 0x4000 | |||
|- | |- | ||
| 0x084B0002 | | 0x084B0002 | ||
| ImportIntegrityVerificationSeed | | ImportIntegrityVerificationSeed | ||
| 0x4000 | |||
|- | |- | ||
| 0x084C0242 | | 0x084C0242 | ||
| FormatSaveData | | FormatSaveData | ||
| 0x6, in some cases this right isn't needed however. | |||
|- | |- | ||
| 0x084D0102 | | 0x084D0102 | ||
| GetLegacySubBannerData | | GetLegacySubBannerData | ||
| 0x1015 | |||
|- | |- | ||
| 0x084E0342 | | 0x084E0342 | ||
| [[FS:UpdateSha256Context|UpdateSha256Context]] | | [[FS:UpdateSha256Context|UpdateSha256Context]] | ||
| 0x5 | |||
|- | |- | ||
| 0x084F0102 | | 0x084F0102 | ||
| ReadSpecialFile | | ReadSpecialFile | ||
| None | |||
|- | |- | ||
| 0x08500040 | | 0x08500040 | ||
| GetSpecialFileSize | | GetSpecialFileSize | ||
| None | |||
|- | |- | ||
| 0x08520100 | | 0x08520100 | ||
| Unknown (u32 flags, u64 extdataID) | | Unknown (u32 flags, u64 extdataID) | ||
| ? | |||
|- | |- | ||
| 0x08620040 | | 0x08620040 | ||
| ? | |||
| ? | | ? | ||
|- | |- | ||
| 0x08630000 | | 0x08630000 | ||
| ? | |||
| ? | | ? | ||
|} | |} | ||
When access rights are required for a command, at least one of the bits in the process accessinfo specified in the above table for the command must be set. Error 0xD9004676 is returned when a process attempts to use a command which it doesn't have access rights for the command. | |||
=File service= | =File service= |