Process Manager services: Difference between revisions
Line 23: | Line 23: | ||
It uses [[Loader_services|ldr:pm]] GetProgramInfo with the supplied title-id. | It uses [[Loader_services|ldr:pm]] GetProgramInfo with the supplied title-id. | ||
If | If ApplicationType == Application, it goes through the process list and errors if any has bit 0x40 set. Thus you can only run one Application at a time. | ||
Resource limits for the process is selected by ApplicationType | Resource limits for the process is selected by ApplicationType. | ||
It calls [[Loader_services|ldr:pm]] RegisterTitle, then [[Loader_services|ldr:pm]] CreateProcess, then [[Filesystem_services|fsp-pr]] RegisterTitle, then [[Services_API|sm:m]] RegisterTitle. | It calls [[Loader_services|ldr:pm]] RegisterTitle, then [[Loader_services|ldr:pm]] CreateProcess, then [[Filesystem_services|fsp-pr]] RegisterTitle, then [[Services_API|sm:m]] RegisterTitle. | ||
Line 41: | Line 41: | ||
[2.0.0+] The launch_flags mask 0x10 and 0x20 will be ignored unless ((*(u8*) (info_output+2)) & 4) is set. | [2.0.0+] The launch_flags mask 0x10 and 0x20 will be ignored unless ((*(u8*) (info_output+2)) & 4) is set. | ||
If | If ApplicationType == Application, 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 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. |