Difference between revisions of "Filesystem services"
Jump to navigation
Jump to search
Line 455: | Line 455: | ||
| CheckHostLoadId | | CheckHostLoadId | ||
|} | |} | ||
+ | |||
+ | =Errors= | ||
+ | See [[Filesystem_services_PXI]]. |
Revision as of 03:20, 5 September 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 | ? | ? |
0x08640000 | Stubbed, this returns an error. | None |
0x08680000 | This loads an u8 from state, then writes it to response-word[2]. | None |
0x08690000 | Stubbed, this returns an error. | None |
0x086A0082 | This is a wrapper for FSPXI command 0x00550082. | None |
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. The exheader accessinfo field is all-zero for most applications.
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 |