Changes

1,079 bytes added ,  22:52, 15 April 2020
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 ==