Line 30: |
Line 30: |
| If launch_flags has mask 1 set, it sets mask 1 in process flags. | | If launch_flags has mask 1 set, it sets mask 1 in process flags. |
| | | |
− | If launch_flags flags has mask 0x10 set, it sets mask 8 in process flags. | + | If launch_flags has mask 0x10 set, it sets mask 8 in process flags. |
| | | |
| If ((*(u8*) (info_output+2)) & 3) is == 1, it sets 0x40 in the process flags, and signals the event returned by [[#EnableDebug]]. svcStartProcess is not called in this case, it has to be done manually by the [[#StartProcess]] command. | | If ((*(u8*) (info_output+2)) & 3) is == 1, it sets 0x40 in the process flags, and signals the event returned by [[#EnableDebug]]. svcStartProcess is not called in this case, it has to be done manually by the [[#StartProcess]] command. |
| + | |
| + | If the title-id matches the title-id given in [[#EnableDebugForTitleId]], then svcStartProcess is not called. Instead process remains in suspended state, and has to be done manually by the [[#StartProcess]] command. |
| + | |
| + | If launch_flags has mask 2 set, svcStartProcess is skipped. |
| | | |
| Finally it does svcStartProcess on the process handle that was returned by [[Loader_services|ldr:pm]] CreateProcess, and sets process state to 2. | | Finally it does svcStartProcess on the process handle that was returned by [[Loader_services|ldr:pm]] CreateProcess, and sets process state to 2. |
− |
| |
− | If the title-id matches the title-id given in [[#EnableDebugForTitleId]], then svcStartProcess is not called. Instead process remains in suspended state, and has to be done manually by the [[#StartProcess]] command.
| |
| | | |
| Thus at the point of launch, the pid is already registered in ldr, fs, sm, and pm. | | Thus at the point of launch, the pid is already registered in ldr, fs, sm, and pm. |