Process Manager services: Difference between revisions

No edit summary
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]]