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 |