PGL services: Difference between revisions
No edit summary |
|||
Line 81: | Line 81: | ||
This then creates a new process tracking structure for the new process id and with the pgl launch flags. If an empty process struct is not allocated from the 0x20 slab heap, pgl aborts. | This then creates a new process tracking structure for the new process id and with the pgl launch flags. If an empty process struct is not allocated from the 0x20 slab heap, pgl aborts. | ||
It returns a u64 process id. | |||
== TerminateProcess == | == TerminateProcess == | ||
Line 87: | Line 89: | ||
== GetEventObserver == | == GetEventObserver == | ||
No input. Returns an [[#IEventObserver]]. | No input. Returns an [[#IEventObserver]]. | ||
== LaunchProgramFromHost == | |||
This takes an input u32 [[Process_Manager_services#LaunchFlags]] pm launch_flags and a MapAlias input buffer "content path". | |||
The content path must be to an ".nsp" file or a ".nspd" folder. "*.nspd/program0.ncd/" is also allowed. | |||
This calls fs::MountApplicationPackage on the input content path, and reads content meta from "meta0.ncd" or ".cnmt.nca" extension folder/file depending on whether it is a .nspd or .nsp content path. | |||
A location resolver for the Host storage is opened, and EraseProgramRedirection is called for the parsed program id. | |||
RedierectProgramPath is then called for the program ID to set it to the input content path. | |||
This then calls the implementation function for [[#LaunchProgram]] with the input pm launch flags and pgl launch flags = 0. | |||
== GetHostContentMetaInfo == | |||
This takes an input MapAlias buffer "content path", and does the same parsing as [[#LaunchProgramFromHost]]. | |||
Instead of launching the program, it instead returns an 0x10 output [[#ContentMetaInfo]] from the parsed info. | |||
== IEventObserver == | == IEventObserver == |