Core: pass down Core::System reference to all services (#4272)

* Core: pass down Core::System reference to all services

This has to be done at once due to unified interface used by HLE/LLE switcher

* apt: eliminate Core::System::GetInstance

* gpu_gsp: eliminate Core::System::GetInstance in service

* hid: eliminate Core::System::GetInstance

* nwm: eliminate Core::System::GetInstance

* err_f: eliminate Core::System::GetInstance
This commit is contained in:
Weiyi Wang 2018-10-05 10:59:43 -04:00 committed by GitHub
parent 008242c5f3
commit b163502744
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
77 changed files with 329 additions and 111 deletions

View file

@ -15,8 +15,9 @@
#include "core/hle/kernel/object.h"
#include "core/hle/service/sm/sm.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// Namespace Service
namespace Core {
class System;
}
namespace Kernel {
class ClientPort;
@ -183,7 +184,7 @@ private:
};
/// Initialize ServiceManager
void Init(std::shared_ptr<SM::ServiceManager>& sm);
void Init(Core::System& system, std::shared_ptr<SM::ServiceManager>& sm);
/// Shutdown ServiceManager
void Shutdown();
@ -194,7 +195,7 @@ extern std::unordered_map<std::string, Kernel::SharedPtr<Kernel::ClientPort>> g_
struct ServiceModuleInfo {
std::string name;
u64 title_id;
std::function<void(SM::ServiceManager&)> init_function;
std::function<void(Core::System&)> init_function;
};
extern const std::array<ServiceModuleInfo, 40> service_module_map;