Loader services: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
= ldr:shel = | |||
This is "nn::ldr::detail::IShellInterface". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#SetProgramArgument]] | |||
|- | |||
| 1 || [[#FlushArguments]] | |||
|} | |||
== AddProcessToLaunchQueue == | |||
Takes a type-0x9 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:dmnt = | = ldr:dmnt = | ||
This is "nn::ldr::detail::IDebugMonitorInterface". | This is "nn::ldr::detail::IDebugMonitorInterface". | ||
Line 6: | Line 28: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[ | | 0 || [[#SetProgramArgument]] | ||
|- | |- | ||
| 1 || [[ | | 1 || [[#FlushArguments]] | ||
|- | |- | ||
| 2 || [[ | | 2 || [[#GetProcessModuleInfo]] | ||
|} | |} | ||
== | == GetProcessModuleInfo== | ||
Takes in a u64 Process ID, and a C descriptor out array of [[#ModuleInfos]]. Returns the number of ModuleInfos copied to output. | |||
ModuleInfo is the same here as for ro:dmnt. | |||
ModuleInfo has the following layout: | |||
=== ModuleInfo === | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 32: | Line 51: | ||
| 0x0 | | 0x0 | ||
| 0x20 | | 0x20 | ||
| | | Build ID | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x8 | | 0x8 | ||
| Mapped | | Mapped Address | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 0x8 | | 0x8 | ||
| Mapped | | Mapped Size | ||
|- | |- | ||
|} | |} | ||
Line 56: | Line 75: | ||
| 1 || [[#GetProgramInfo]] | | 1 || [[#GetProgramInfo]] | ||
|- | |- | ||
| 2 || [[# | | 2 || [[#PinProgram]] | ||
|- | |- | ||
| 3 || [[# | | 3 || [[#UnpinProgram]] | ||
|} | |} | ||
== GetProgramInfo == | == GetProgramInfo == | ||
Takes | Takes an ncm::ProgramLocation, parses the NPDM, and writes a [[#ProgramInfo]] to a C descriptor buffer as follows: | ||
=== ProgramInfo === | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 127: | Line 147: | ||
|} | |} | ||
== | == PinProgram == | ||
Takes | Takes an ncm::ProgramLocation, returns a u64 "PinId". | ||
== | == UnpinProgram == | ||
Takes a PinId from [[#PinProgram]]. | |||
[[Category:Services]] | [[Category:Services]] |