diff options
author | Subv <subv2112@gmail.com> | 2017-09-26 18:17:47 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2017-09-26 18:17:47 -0500 |
commit | 7f48aa8d2580da6b3b83a389e31804e493aba69f (patch) | |
tree | 287b04f23f2d195f123fd15dca68d6a1cebf945c /src/core/loader/loader.h | |
parent | 3165466b665185ecbc3e33b02b0b90e25e7248ba (diff) |
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.
Diffstat (limited to 'src/core/loader/loader.h')
-rw-r--r-- | src/core/loader/loader.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h index 3160fd2fdc..82b2be6a37 100644 --- a/src/core/loader/loader.h +++ b/src/core/loader/loader.h @@ -13,10 +13,12 @@ #include <boost/optional.hpp> #include "common/common_types.h" #include "common/file_util.h" +#include "core/hle/kernel/kernel.h" namespace Kernel { struct AddressMapping; -} +class Process; +} // namespace Kernel //////////////////////////////////////////////////////////////////////////////////////////////////// // Loader namespace @@ -92,10 +94,11 @@ public: virtual FileType GetFileType() = 0; /** - * Load the application - * @return ResultStatus result of function + * Load the application and return the created Process instance + * @param process The newly created process. + * @return The status result of the operation. */ - virtual ResultStatus Load() = 0; + virtual ResultStatus Load(Kernel::SharedPtr<Kernel::Process>& process) = 0; /** * Loads the system mode that this application needs. @@ -206,4 +209,4 @@ extern const std::initializer_list<Kernel::AddressMapping> default_address_mappi */ std::unique_ptr<AppLoader> GetLoader(const std::string& filename); -} // namespace +} // namespace Loader |