Process Manager services: Difference between revisions
| (9 intermediate revisions by 3 users not shown) | |||
| Line 35: | Line 35: | ||
|- | |- | ||
| 5 || 0x20 || [2.0.0+] LaunchFlags_SignalOnStart | | 5 || 0x20 || [2.0.0+] LaunchFlags_SignalOnStart | ||
|} | |||
= ProcessEventInfo = | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| ProcessEvent | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Padding/Reserved | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| ProcessId | |||
|- | |||
|} | |} | ||
| Line 101: | Line 122: | ||
|- | |- | ||
| 1 || SetMaintenanceBoot | | 1 || SetMaintenanceBoot | ||
|- | |||
| 2 || [19.0.0+] | |||
|- | |||
| 3 || [19.0.0+] | |||
|} | |} | ||
| Line 114: | Line 139: | ||
| 0 ([1.0.0-4.1.0] 1) || [[#GetJitDebugProcessIdList]] | | 0 ([1.0.0-4.1.0] 1) || [[#GetJitDebugProcessIdList]] | ||
|- | |- | ||
| 1 ([1.0.0-4.1.0] 2) | | 1 ([1.0.0-4.1.0] 2) || [[#StartProcess]] | ||
|- | |||
| 2 ([1.0.0-4.1.0] 3) || [[#GetProcessId]] | |||
|- | |- | ||
| | | 3 ([1.0.0-4.1.0] 4) || [[#HookToCreateProcess]] | ||
|- | |- | ||
| | | 4 ([1.0.0-4.1.0] 5) || [[#GetApplicationProcessId]] | ||
|- | |- | ||
| | | 5 ([1.0.0-4.1.0] 6) || [[#HookToCreateApplicationProcess]] | ||
|- | |- | ||
| | | [6.0.0+] 6 || [[#ClearHook]] | ||
|- | |- | ||
| [ | | [14.0.0+] 7 || GetProgramId | ||
|} | |} | ||
| Line 176: | Line 203: | ||
|- | |- | ||
| 0 || [[#GetProgramId]] | | 0 || [[#GetProgramId]] | ||
|- | |||
| 1 || [14.0.0+] GetAppletCurrentResourceLimitValues | |||
|- | |||
| 2 || [14.0.0+] GetAppletPeakResourceLimitValues | |||
|} | |} | ||
| Line 208: | Line 239: | ||
| 7 ([4.0.0-4.1.0] 9) || [4.0.0+] [[#BoostSystemMemoryResourceLimit]] | | 7 ([4.0.0-4.1.0] 9) || [4.0.0+] [[#BoostSystemMemoryResourceLimit]] | ||
|- | |- | ||
| 8 || [7.0.0+] [[# | | 8 || [7.0.0+] [[#BoostApplicationThreadResourceLimit]] | ||
|- | |- | ||
| 9 || [8.0.0+] [[#GetBootFinishedEventHandle]] | | 9 || [8.0.0+] [[#GetBootFinishedEventHandle]] | ||
|- | |||
| 10 || [14.0.0+] BoostSystemThreadResourceLimit | |||
|- | |||
| 12 || [19.0.0+] GetProcessId | |||
|} | |} | ||
== LaunchProgram == | == LaunchProgram == | ||
Takes launch_flags | Takes an u32 launch_flags and [[NCM_services#ProgramLocation|ProgramLocation]]. Returns the u64 title PID. | ||
See [[#Process launch]]. | |||
== GetProcessEventInfo == | == GetProcessEventInfo == | ||
| Line 244: | Line 279: | ||
== NotifyBootFinished == | == NotifyBootFinished == | ||
This launches the [[boot2]] title. | This [[#LaunchProgram|launches]] the [[boot2]] title with launch_flags=0. | ||
[10.0.0+] The functionality described [[SMC#DisableProgramVerification|here]] was added, prior to title-launching. | |||
[4.0.0+] When booting from SafeMode Firmware, instead of [[boot2]], this launches the following titles in order: | [4.0.0+] When booting from SafeMode Firmware, instead of [[boot2]], this launches the following titles in order (launch_flags=0): | ||
* 0100000000000009 (settings) | * 0100000000000009 (settings) | ||
* 0100000000000006 (usb) | * 0100000000000006 (usb) | ||
* 010000000000001D (pcie) | * 010000000000001D (pcie) | ||
* 0100000000000007 (tma) | * 0100000000000007 (tma) | ||
* 0100000000000042 (pgl) [10.0.0+] | |||
* 010000000000001F (ns) | * 010000000000001F (ns) | ||
* 0100000000000015 (lm) | * 0100000000000015 (lm) | ||
| Line 256: | Line 294: | ||
* 0100000000000016 (wlan) | * 0100000000000016 (wlan) | ||
* 0100000000000012 (bsdsockets) | * 0100000000000012 (bsdsockets) | ||
* 0100000000000046 (eth) [15.0.0+] | |||
* 010000000000000F (nifm) | * 010000000000000F (nifm) | ||
* 0100000000000024 (ssl) | * 0100000000000024 (ssl) | ||
| Line 270: | Line 309: | ||
This is used directly by [[NS_Services#IApplicationManagerInterface|ns:am2 BoostSystemMemoryResourceLimit]]. | This is used directly by [[NS_Services#IApplicationManagerInterface|ns:am2 BoostSystemMemoryResourceLimit]]. | ||
== | == BoostApplicationThreadResourceLimit == | ||
Calls svcSetResourceLimitLimitValue to increase the limit on | Calls svcSetResourceLimitLimitValue to increase the limit on application threads by an amount calculated dynamically during setup. | ||
This function can only increase the limit once, on further calls it will call svcSetResourceLimitLimitValue with the same value it called the first time. | This function can only increase the limit once, on further calls it will call svcSetResourceLimitLimitValue with the same value it called the first time. | ||
On normal [[7.0.0]] retail firmware, this will double the limit on | On normal [[7.0.0]] retail firmware, this will double the limit on application threads from 0x60 to 0xC0. | ||
== GetBootFinishedEventHandle == | == GetBootFinishedEventHandle == | ||