Difference between revisions of "Loader services"
Jump to navigation
Jump to search
(ldr:pm - GetProgramInfo) |
|||
Line 14: | Line 14: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! Cmd || Name | + | ! Cmd || Name |
|- | |- | ||
− | | 0 || | + | | 0 || CreateProcess |
|- | |- | ||
− | | 1 || GetProgramInfo | + | | 1 || [[#GetProgramInfo]] |
|- | |- | ||
− | | 2 || | + | | 2 || [[#RegisterTitle]] |
|- | |- | ||
− | | 3 || | + | | 3 || [[#UnregisterTitle]] |
|} | |} | ||
+ | |||
+ | == GetProgramInfo == | ||
+ | Takes a TitleId + StorageId, writes output to a C descriptor buffer. | ||
+ | |||
+ | == RegisterTitle == | ||
+ | Takes a TitleId + StorageId, returns an index. | ||
+ | |||
+ | == UnregisterTitle == | ||
+ | Takes the index from [[#RegisterTitle]]. | ||
+ | |||
+ | = ldr:shel = | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#AddProcessToLaunchQueue]] | ||
+ | |- | ||
+ | | 1 || [[#ClearLaunchQueue]] | ||
+ | |} | ||
+ | |||
+ | == AddProcessToLaunchQueue == | ||
+ | Takes a type-0x19 input buffer with launch arguments (as string), an u32 (size of arguments string), and an input title-id. | ||
+ | |||
+ | Loads a process for the specified title-id and passes along the supplied arguments. | ||
+ | Loaded processes are kept in a queue waiting for PM to launch them. The maximum number of waiting processes in this list is 10. | ||
+ | |||
+ | == ClearLaunchQueue == | ||
+ | Clears the loaded processes waiting queue. | ||
= ldr:ro = | = ldr:ro = | ||
Line 115: | Line 143: | ||
| 2 || Always 0. | | 2 || Always 0. | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Services]] | [[Category:Services]] |
Revision as of 15:56, 16 July 2017
ldr:dmnt
Cmd | Name |
---|---|
0 | |
1 | |
2 |
ldr:pm
Cmd | Name |
---|---|
0 | CreateProcess |
1 | #GetProgramInfo |
2 | #RegisterTitle |
3 | #UnregisterTitle |
GetProgramInfo
Takes a TitleId + StorageId, writes output to a C descriptor buffer.
RegisterTitle
Takes a TitleId + StorageId, returns an index.
UnregisterTitle
Takes the index from #RegisterTitle.
ldr:shel
Cmd | Name |
---|---|
0 | #AddProcessToLaunchQueue |
1 | #ClearLaunchQueue |
AddProcessToLaunchQueue
Takes a type-0x19 input buffer with launch arguments (as string), an u32 (size of arguments string), and an input title-id.
Loads a process for the specified title-id and passes along the supplied arguments. Loaded processes are kept in a queue waiting for PM to launch them. The maximum number of waiting processes in this list is 10.
ClearLaunchQueue
Clears the loaded processes waiting queue.
ldr:ro
Cmd | Name |
---|---|
0 | #LoadNro |
1 | UnloadNro |
2 | #LoadNrr |
3 | UnloadNrr |
4 | #Initialize |
LoadNro
Word | Value |
---|---|
0 | 0x00000004 |
1 | 0x80000012 |
2 | 0x00000001 |
0-1 | Pid |
0 | "SCFI" |
1 | 0x00000000 |
2 | Always 0. |
3 | Nro heap address |
4 | Nro size |
5 | Bss backing heap address |
6 | Bss size |
LoadNrr
Word | Value |
---|---|
0 | 0x00000004 |
1 | 0x8000000E |
2 | 0x00000001 |
0-1 | Pid |
0 | "SFCI" |
1 | 0x00000002 |
2 | Always 0. |
3 | Nrr address |
4 | Nrr size |
Initialize
Word | Value |
---|---|
0 | 0x00000004 |
1 | 0x8000000A |
2 | 0x00000003 |
0-1 | Pid |
2 | Process handle (0xFFFF8001) |
0 | "SFCI" |
1 | 0x00000004 |
2 | Always 0. |