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=