Changes

Jump to navigation Jump to search
208 bytes removed ,  01:33, 18 November 2017
It uses [[Loader_services|ldr:pm]] GetProgramInfo with the supplied title-id.
If ((*(u8*) (info_output+2)) & 3) is ApplicationType == 1Application, it goes through the process list and errors if any has bit 0x40 set. Thus you can only run one application Application at a time.
Resource limits for the process is selected by ApplicationType which is ((*(u8*) (info_output+2)) & 3) being 0, 1, or 2. Value 3 is not used. 0 = sysmodule(sysmodules don't have the ApplicationType kernel [[NPDM|descriptor]]), 1 = application, 2 = applet.
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.
[2.0.0+] The launch_flags mask 0x10 and 0x20 will be ignored unless ((*(u8*) (info_output+2)) & 4) is set.
If ((*(u8*) (info_output+2)) & 3) is ApplicationType == 1Application, 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.

Navigation menu