Filesystem services: Difference between revisions
No edit summary |
No edit summary |
||
Line 14: | Line 14: | ||
== OpenCodeFileSystem == | == OpenCodeFileSystem == | ||
Takes an | Takes an [[NCM_services#ProgramId|ProgramId]] and a [[#ContentPath]]. Returns an [[#IFileSystem]]. | ||
== IsArchivedProgram == | == IsArchivedProgram == | ||
Line 20: | Line 20: | ||
== SetCurrentProcess == | == SetCurrentProcess == | ||
Takes a | Takes a ProcessId descriptor. | ||
= fsp-pr = | = fsp-pr = | ||
Line 39: | Line 39: | ||
== RegisterProgram == | == RegisterProgram == | ||
Takes a | Takes a [[NCM_services#StorageId|StorageId]], an u64 ProcessId, a [[NCM_services#ProgramId|ProgramId]], a 0x1C type-A buffer for the [[NPDM#FS_Access_Header| FS Access Header]], and a 0x2C type-A buffer for the [[NPDM#FS_Access_Control| FS Access Control]] | ||
Final FS permissions are stored as (ACI0_perms & ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid. | Final FS permissions are stored as (ACI0_perms & ACID_perms). Will panic(svcBreak) when buffer sizes from ipc-rawdata are invalid. | ||
Line 527: | Line 527: | ||
== OpenFileSystem == | == OpenFileSystem == | ||
Takes a type-0x19 input | Takes a type-0x19 input [[#ContentPath]] and a [[#FileSystemType]] as parameters. Returns an [[#IFileSystem]]. | ||
[2.0.0+] This function was removed. | [2.0.0+] This function was removed. | ||
Line 557: | Line 557: | ||
== OpenBisFileSystem == | == OpenBisFileSystem == | ||
Takes a type-0x19 input buffer string and a | Takes a type-0x19 input buffer string and a [[#BisPartitionId]]. Official user-process code sets instr[0] = 0 normally. Returns an [[#IFileSystem]]. | ||
Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors. | Only partitionIDs for FAT partitions are usable with this, otherwise error 0x2EE202 is returned. Seems to be about the same as [[#OpenBisStorage]] except this mounts the partition filesystem instead of allowing direct access to the partition sectors. | ||
Line 656: | Line 656: | ||
== OpenDataStorageByDataId == | == OpenDataStorageByDataId == | ||
Takes a [[NCM_services#StorageId|StorageID]] and a [[NCM_services# | Takes a [[NCM_services#StorageId|StorageID]] and a [[NCM_services#DataId|DataId]]. | ||
Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives. | Returns a [[IPC_Marshalling#Domain_message|domain object ID]] implementing the [[#IStorage]] interface for data archives. | ||
Line 2,024: | Line 2,024: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| [[NCM_services# | | [[NCM_services#ApplicationId|ApplicationId]] (0 for SystemSaveData)</br>SaveData: 0 can be used for accessing the savedata associated with the current FS session [[NCM_services#ApplicationId|ApplicationId]], otherwise when set this is the [[NCM_services#ApplicationId|ApplicationId]] associated with the savedata to access. | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 2,115: | Line 2,115: | ||
= BcatSaveData = | = BcatSaveData = | ||
This is accessed using the same commands for SaveData with the same input u8. The [[#SaveDataAttribute]] is the same as DeviceSaveData, except that the [[NCM_services# | This is accessed using the same commands for SaveData with the same input u8. The [[#SaveDataAttribute]] is the same as DeviceSaveData, except that the [[NCM_services#ApplicationId|ApplicationId]] field is set to <input ApplicationId>. See above regarding [[#SaveDataCreationInfo]]. | ||
The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero. | The 0x10-byte struct passed to [[#CreateSaveDataFileSystem]] has the first 0x5-bytes set to all-zero. | ||
Line 2,130: | Line 2,130: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SaveDataId | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 2,146: | Line 2,146: | ||
| 0x10 | | 0x10 | ||
| 0x10 | | 0x10 | ||
| | | UserId | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x8 | | 0x8 | ||
| | | SystemSaveDataId (0 for regular SaveData) | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 0x8 | | 0x8 | ||
| | | [[NCM_services#ApplicationId|ApplicationId]] (for regular SaveData) | ||
|- | |- | ||
| 0x30 | | 0x30 |