mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2025-06-29 13:57:55 -05:00
service: move hle_ipc from kernel
This commit is contained in:
@ -36,13 +36,13 @@ public:
|
||||
~SM() override;
|
||||
|
||||
private:
|
||||
void Initialize(Kernel::HLERequestContext& ctx);
|
||||
void GetService(Kernel::HLERequestContext& ctx);
|
||||
void GetServiceTipc(Kernel::HLERequestContext& ctx);
|
||||
void RegisterService(Kernel::HLERequestContext& ctx);
|
||||
void UnregisterService(Kernel::HLERequestContext& ctx);
|
||||
void Initialize(HLERequestContext& ctx);
|
||||
void GetService(HLERequestContext& ctx);
|
||||
void GetServiceTipc(HLERequestContext& ctx);
|
||||
void RegisterService(HLERequestContext& ctx);
|
||||
void UnregisterService(HLERequestContext& ctx);
|
||||
|
||||
ResultVal<Kernel::KClientSession*> GetServiceImpl(Kernel::HLERequestContext& ctx);
|
||||
ResultVal<Kernel::KClientSession*> GetServiceImpl(HLERequestContext& ctx);
|
||||
|
||||
ServiceManager& service_manager;
|
||||
Kernel::KernelCore& kernel;
|
||||
@ -53,12 +53,11 @@ public:
|
||||
explicit ServiceManager(Kernel::KernelCore& kernel_);
|
||||
~ServiceManager();
|
||||
|
||||
Result RegisterService(std::string name, u32 max_sessions,
|
||||
Kernel::SessionRequestHandlerPtr handler);
|
||||
Result RegisterService(std::string name, u32 max_sessions, SessionRequestHandlerPtr handler);
|
||||
Result UnregisterService(const std::string& name);
|
||||
ResultVal<Kernel::KPort*> GetServicePort(const std::string& name);
|
||||
|
||||
template <Common::DerivedFrom<Kernel::SessionRequestHandler> T>
|
||||
template <Common::DerivedFrom<SessionRequestHandler> T>
|
||||
std::shared_ptr<T> GetService(const std::string& service_name) const {
|
||||
auto service = registered_services.find(service_name);
|
||||
if (service == registered_services.end()) {
|
||||
@ -68,7 +67,7 @@ public:
|
||||
return std::static_pointer_cast<T>(service->second);
|
||||
}
|
||||
|
||||
void InvokeControlRequest(Kernel::HLERequestContext& context);
|
||||
void InvokeControlRequest(HLERequestContext& context);
|
||||
|
||||
void SetDeferralEvent(Kernel::KEvent* deferral_event_) {
|
||||
deferral_event = deferral_event_;
|
||||
@ -80,7 +79,7 @@ private:
|
||||
|
||||
/// Map of registered services, retrieved using GetServicePort.
|
||||
std::mutex lock;
|
||||
std::unordered_map<std::string, Kernel::SessionRequestHandlerPtr> registered_services;
|
||||
std::unordered_map<std::string, SessionRequestHandlerPtr> registered_services;
|
||||
std::unordered_map<std::string, Kernel::KPort*> service_ports;
|
||||
|
||||
/// Kernel context
|
||||
|
Reference in New Issue
Block a user