Loaders: Don't automatically set the current process every time we load an application.

The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
This commit is contained in:
Subv 2017-09-26 18:17:47 -05:00
parent 3165466b66
commit 7f48aa8d25
8 changed files with 40 additions and 37 deletions

View file

@ -33,7 +33,7 @@ public:
return IdentifyType(file);
}
ResultStatus Load() override;
ResultStatus Load(Kernel::SharedPtr<Kernel::Process>& process) override;
/**
* Loads the Exheader and returns the system mode for this application.
@ -62,9 +62,10 @@ public:
private:
/**
* Loads .code section into memory for booting
* @param process The newly created process
* @return ResultStatus result of function
*/
ResultStatus LoadExec();
ResultStatus LoadExec(Kernel::SharedPtr<Kernel::Process>& process);
/// Reads the region lockout info in the SMDH and send it to CFG service
void ParseRegionLockoutInfo();