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 || [[Loader_services#AddProcessToDebugLaunchQueue|AddProcessToDebugLaunchQueue]] | + | | 0 || [[#SetProgramArgument]] |
| |- | | |- |
− | | 1 || [[Loader_services#ClearDebugLaunchQueue|ClearDebugLaunchQueue]] | + | | 1 || [[#FlushArguments]] |
| |- | | |- |
− | | 2 || [[Loader_services#GetNsoInfos|GetNsoInfos]] | + | | 2 || [[#GetProcessModuleInfo]] |
| |} | | |} |
| | | |
− | == AddProcessToDebugLaunchQueue == | + | == GetProcessModuleInfo== |
− | Same as [[Loader_services#AddProcessToLaunchQueue|AddProcessToLaunchQueue]] but for processes marked as debug.
| + | Takes in a u64 Process ID, and a C descriptor out array of [[#ModuleInfos]]. Returns the number of ModuleInfos copied to output. |
− | | |
− | == ClearDebugLaunchQueue ==
| |
− | Same as [[Loader_services#ClearLaunchQueue|ClearLaunchQueue]].
| |
| | | |
− | == GetNsoInfos ==
| + | ModuleInfo is the same here as for ro:dmnt. |
− | Takes in a u64 ProcessID, and a C descriptor. Returns the number of NsoInfos copied to output.
| |
| | | |
− | NsoInfo has the following layout:
| + | ModuleInfo has the following layout: |
| | | |
| + | === ModuleInfo === |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 32: |
Line 51: |
| | 0x0 | | | 0x0 |
| | 0x20 | | | 0x20 |
− | | "Build ID", from NSO header+0x40. | + | | Build ID |
| |- | | |- |
| | 0x20 | | | 0x20 |
| | 0x8 | | | 0x8 |
− | | Mapped address for this NSO | + | | Mapped Address |
| |- | | |- |
| | 0x28 | | | 0x28 |
| | 0x8 | | | 0x8 |
− | | Mapped size for this NSO | + | | Mapped Size |
| |- | | |- |
| |} | | |} |
Line 56: |
Line 75: |
| | 1 || [[#GetProgramInfo]] | | | 1 || [[#GetProgramInfo]] |
| |- | | |- |
− | | 2 || [[#RegisterTitle]] | + | | 2 || [[#PinProgram]] |
| |- | | |- |
− | | 3 || [[#UnregisterTitle]] | + | | 3 || [[#UnpinProgram]] |
| |} | | |} |
| | | |
| == GetProgramInfo == | | == GetProgramInfo == |
− | Takes a TitleId + StorageId, parses the NPDM, and writes output to a C descriptor buffer as follows: | + | 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: |
| |} | | |} |
| | | |
− | == RegisterTitle == | + | == PinProgram == |
− | Takes a TitleId + StorageId, returns an index. | + | Takes an ncm::ProgramLocation, returns a u64 "PinId". |
− | | |
− | == UnregisterTitle ==
| |
− | Takes the index from [[#RegisterTitle]].
| |
− | | |
− | = ldr:shel =
| |
− | This is "nn::ldr::detail::IShellInterface".
| |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Cmd || Name
| |
− | |-
| |
− | | 0 || [[#AddProcessToLaunchQueue]]
| |
− | |-
| |
− | | 1 || [[#ClearLaunchQueue]]
| |
− | |}
| |
− | | |
− | == 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 == | + | == UnpinProgram == |
− | Clears the loaded processes waiting queue.
| + | Takes a PinId from [[#PinProgram]]. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |