Filesystem services: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 62: | Line 62: | ||
| 0x080C00C2 | | 0x080C00C2 | ||
| [[FS:OpenArchive|OpenArchive]] | | [[FS:OpenArchive|OpenArchive]] | ||
| | | Each archive idcode has separate accessinfo bitmasks, if any. | ||
|- | |- | ||
| 0x080D0144 | | 0x080D0144 | ||
Revision as of 18:16, 4 April 2013
Filesystem service "fs:USER"
| Command Header | Description | Required exheader accessinfo bitmask |
|---|---|---|
| 0x000100C6 | Dummy1 | None |
| 0x040100C4 | Control | None |
| 0x08010002 | Initialize | None |
| 0x080201C2 | OpenFile | None |
| 0x08030204 | OpenFileDirectly | None |
| 0x08040142 | DeleteFile | None |
| 0x08050244 | RenameFile | None |
| 0x08060142 | DeleteDirectory | None |
| 0x08070142 | DeleteDirectoryRecursively | None |
| 0x08080202 | CreateFile | None |
| 0x08090182 | CreateDirectory | None |
| 0x080A0244 | RenameDirectory | None |
| 0x080B0102 | OpenDirectory | None |
| 0x080C00C2 | OpenArchive | Each archive idcode has separate accessinfo bitmasks, if any. |
| 0x080D0144 | ControlArchive | None |
| 0x080E0080 | CloseArchive | None |
| 0x080F0180 | FormatThisUserSaveData | None |
| 0x08100200 | CreateSystemSaveData | 0x4, for when the input saveID doesn't match the exheader saveID. |
| 0x08110040 | DeleteSystemSaveData | 0x1004, for when the input saveID doesn't match the exheader saveID. |
| 0x08120080 | GetFreeBytes | None |
| 0x08130000 | GetCardType | 0x1017 |
| 0x08140000 | GetSdmcArchiveResource | None |
| 0x08150000 | GetNandArchiveResource | None |
| 0x08160000 | GetSdmcFatfsError | 0x2 |
| 0x08170000 | IsSdmcDetected | None |
| 0x08180000 | IsSdmcWritable | None |
| 0x08190042 | GetSdmcCid | 0x2 |
| 0x081A0042 | GetNandCid | 0x2 |
| 0x081B0000 | GetSdmcSpeedInfo | 0x2 |
| 0x081C0000 | GetNandSpeedInfo | 0x2 |
| 0x081D0042 | GetSdmcLog | 0x2 |
| 0x081E0042 | GetNandLog | 0x2 |
| 0x081F0000 | ClearSdmcLog | 0x2 |
| 0x08200000 | ClearNandLog | 0x2 |
| 0x08210000 | CardSlotIsInserted | 0x1017 |
| 0x08220000 | CardSlotPowerOn | 0x2 |
| 0x08230000 | CardSlotPowerOff | 0x2 |
| 0x08240000 | CardSlotGetCardIFPowerStatus | 0x2 |
| 0x08250040 | CardNorDirectCommand | 0x2 |
| 0x08260080 | CardNorDirectCommandWithAddress | 0x2 |
| 0x08270082 | CardNorDirectRead | 0x2 |
| 0x082800C2 | CardNorDirectReadWithAddress | 0x2 |
| 0x08290082 | CardNorDirectWrite | 0x2 |
| 0x082A00C2 | CardNorDirectWriteWithAddress | 0x2 |
| 0x082B00C2 | CardNorDirectRead_4xIO | 0x2 |
| 0x082C0082 | CardNorDirectCpuWriteWithoutVerify | 0x2 |
| 0x082D0040 | CardNorDirectSectorEraseWithoutVerify | 0x2 |
| 0x082E0040 | GetProductInfo | 0x1005 |
| 0x082F0040 | GetProgramLaunchInfo | 0x1005 |
| 0x08300182 | CreateExtSaveData | 0xC, for when the input extdataID doesn't match the exheader extdataID. |
| 0x08310180 | CreateSharedExtSaveData | 0x1005 |
| 0x08320102 | ReadExtSaveDataIcon | 0x100D, for when the input extdataID doesn't match the exheader extdataID. |
| 0x08330082 | EnumerateExtSaveData | 0x1005 |
| 0x08340082 | EnumerateSharedExtSaveData | 0x1005 |
| 0x08350080 | DeleteExtSaveData | 0x100D, for when the input extdataID doesn't match the exheader extdataID. |
| 0x08360080 | DeleteSharedExtSaveData | 0x1005 |
| 0x08370040 | SetCardSpiBaudRate | 0x2 |
| 0x08380040 | SetCardSpiBusMode | 0x2 |
| 0x08390000 | SendInitializeInfoTo9 | None |
| 0x083A0100 | GetSpecialContentIndex | 0x1005 |
| 0x083B00C2 | GetLegacyRomHeader | 0x1015 |
| 0x083C00C2 | GetLegacyBannerData | 0x1015 |
| 0x083D0100 | CheckAuthorityToAccessExtSaveData | 0x44 |
| 0x083E00C2 | QueryTotalQuotaSize | None |
| 0x083F00C0 | GetExtDataBlockSize | None |
| 0x08400040 | AbnegateAccessRight | |
| 0x08410000 | DeleteSdmcRoot | 0x1005 |
| 0x08420040 | DeleteAllExtSaveDataOnNand | 0x1005 |
| 0x08430000 | InitializeCtrFileSystem | None |
| 0x08440000 | CreateSeed | 0x2 |
| 0x084500C2 | GetFormatInfo | ? |
| 0x08460102 | GetLegacyRomHeader2 | 0x1015 |
| 0x08470180 | FormatCtrCardUserSaveData | 0x6 |
| 0x08480042 | GetSdmcCtrRootPath | 0x100D |
| 0x08490040 | GetArchiveResource | ? |
| 0x084A0002 | ExportIntegrityVerificationSeed | 0x4000 |
| 0x084B0002 | ImportIntegrityVerificationSeed | 0x4000 |
| 0x084C0242 | FormatSaveData | 0x6, in some cases this right isn't needed however. |
| 0x084D0102 | GetLegacySubBannerData | 0x1015 |
| 0x084E0342 | UpdateSha256Context | 0x5 |
| 0x084F0102 | ReadSpecialFile | None |
| 0x08500040 | GetSpecialFileSize | None |
| 0x08520100 | Unknown (u32 flags, u64 extdataID) | ? |
| 0x08620040 | ? | ? |
| 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
| Command Header | Description |
|---|---|
| 0x000100C6 | Dummy1 |
| 0x040100C4 | Control |
| 0x08010100 | OpenSubFile |
| 0x080200C2 | Read |
| 0x08030102 | Write |
| 0x08040000 | GetSize |
| 0x08050080 | SetSize |
| 0x08060000 | GetAttributes |
| 0x08070040 | SetAttributes |
| 0x08080000 | Close |
| 0x08090000 | Flush |
Directory service
| Command Header | Description |
|---|---|
| 0x000100C6 | Dummy1 |
| 0x040100C4 | Control |
| 0x08010042 | Read |
| 0x08020000 | Close |
Filesystem service "fs:LDR"
This service is identical to fs:USER, except FS:OpenArchive archive 0x2345678E can only be accessed with fs:LDR.
ProgramRegistry service "fs:REG"
| Command Header | Description |
|---|---|
| 0x000100C6 | Dummy1 |
| 0x040103C0 | Register |
| 0x04020040 | Unregister |
| 0x040300C0 | GetProgramInfo |
| 0x04040100 | LoadProgram |
| 0x04050080 | UnloadProgram |
| 0x04060080 | CheckHostLoadId |