Difference between revisions of "Process Manager services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 32: Line 32:
 
| 4 || GetProcessEventType (0=CONTINUE, 1=CRASHING, 2,3,5)
 
| 4 || GetProcessEventType (0=CONTINUE, 1=CRASHING, 2,3,5)
 
|-
 
|-
| 5 || FinalizeEventType2
+
| 5 || [[#FinalizeDeadProcess]]
 
|-
 
|-
| 6 || FinalizeCrashingProcess
+
| 6 || [[#ClearProcessCrashedFlag]]
 
|-
 
|-
| 7 || NotifyBootFinished
+
| 7 || [[#NotifyBootFinished]]
 
|-
 
|-
| 8 || GetCrashingProcessPid
+
| 8 || [[#GetCrashingProcessPid]]
 
|}
 
|}
 +
 +
== FinalizeDeadProcess ==
 +
Takes a pid as input. If the process with pid has the state "dead", it unregisters the pid in fsp:pr, sm:m, and ldr:pm.
 +
 +
Then it removes the process from PMs internal linked-list of active processes.
 +
 +
== ClearProcessCrashedFlag ==
 +
Takes a pid as input. Clears 0x10 from process flags.
 +
 +
== NotifyBootFinished ==
 +
Launches a process with hardcoded [[boot2]] title-id.
 +
 +
== GetCrashingProcessPid ==
 +
Loops through the internal linked-list of processes, looks for mask 0x40 set in process flags. Returns pid of first such entry.
  
 
[[Category:Services]]
 
[[Category:Services]]

Revision as of 23:34, 18 July 2017

pm:bm

Cmd Name
0 GetMaintenanceMode?
1 EnableMaintenanceMode

pm:info

Cmd Name
0 GetProcessTitleID

pm:shell

Cmd Name
0 LaunchProcess
1 TerminateProcessByPid
2 TerminateProcessByTitleID
3 GetProcessEventWaiter
4 GetProcessEventType (0=CONTINUE, 1=CRASHING, 2,3,5)
5 #FinalizeDeadProcess
6 #ClearProcessCrashedFlag
7 #NotifyBootFinished
8 #GetCrashingProcessPid

FinalizeDeadProcess

Takes a pid as input. If the process with pid has the state "dead", it unregisters the pid in fsp:pr, sm:m, and ldr:pm.

Then it removes the process from PMs internal linked-list of active processes.

ClearProcessCrashedFlag

Takes a pid as input. Clears 0x10 from process flags.

NotifyBootFinished

Launches a process with hardcoded boot2 title-id.

GetCrashingProcessPid

Loops through the internal linked-list of processes, looks for mask 0x40 set in process flags. Returns pid of first such entry.