From 6f368abe13bbf980b41b0209ddd5ca067761028a Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Tue, 6 Jun 2017 21:25:28 -0700 Subject: Service/sm: Convert 'srv:' to ServiceFramework --- src/core/hle/service/sm/sm.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/core/hle/service/sm/sm.h') diff --git a/src/core/hle/service/sm/sm.h b/src/core/hle/service/sm/sm.h index 5fac5455c..8f0dbf2db 100644 --- a/src/core/hle/service/sm/sm.h +++ b/src/core/hle/service/sm/sm.h @@ -20,6 +20,8 @@ class SessionRequestHandler; namespace Service { namespace SM { +class SRV; + constexpr ResultCode ERR_SERVICE_NOT_REGISTERED(1, ErrorModule::SRV, ErrorSummary::WouldBlock, ErrorLevel::Temporary); // 0xD0406401 constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED(2, ErrorModule::SRV, ErrorSummary::WouldBlock, @@ -33,17 +35,21 @@ constexpr ResultCode ERR_NAME_CONTAINS_NUL(7, ErrorModule::SRV, ErrorSummary::Wr class ServiceManager { public: + static void InstallInterfaces(std::shared_ptr self); + ResultVal> RegisterService(std::string name, unsigned int max_sessions); ResultVal> GetServicePort(const std::string& name); ResultVal> ConnectToService(const std::string& name); private: - /// Map of services registered with the "srv:" service, retrieved using GetServiceHandle. + std::weak_ptr srv_interface; + + /// Map of registered services, retrieved using GetServicePort or ConnectToService. std::unordered_map> registered_services; }; -extern std::unique_ptr g_service_manager; +extern std::shared_ptr g_service_manager; } // namespace SM } // namespace Service -- cgit v1.2.3