diff options
Diffstat (limited to 'src/core/hle/service/service.h')
| -rw-r--r-- | src/core/hle/service/service.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index ed4792289..62a182310 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h | |||
| @@ -80,6 +80,9 @@ protected: | |||
| 80 | template <typename Self> | 80 | template <typename Self> |
| 81 | using HandlerFnP = void (Self::*)(Kernel::HLERequestContext&); | 81 | using HandlerFnP = void (Self::*)(Kernel::HLERequestContext&); |
| 82 | 82 | ||
| 83 | /// System context that the service operates under. | ||
| 84 | Core::System& system; | ||
| 85 | |||
| 83 | private: | 86 | private: |
| 84 | template <typename T> | 87 | template <typename T> |
| 85 | friend class ServiceFramework; | 88 | friend class ServiceFramework; |
| @@ -93,7 +96,8 @@ private: | |||
| 93 | using InvokerFn = void(ServiceFrameworkBase* object, HandlerFnP<ServiceFrameworkBase> member, | 96 | using InvokerFn = void(ServiceFrameworkBase* object, HandlerFnP<ServiceFrameworkBase> member, |
| 94 | Kernel::HLERequestContext& ctx); | 97 | Kernel::HLERequestContext& ctx); |
| 95 | 98 | ||
| 96 | ServiceFrameworkBase(const char* service_name, u32 max_sessions, InvokerFn* handler_invoker); | 99 | explicit ServiceFrameworkBase(Core::System& system_, const char* service_name_, |
| 100 | u32 max_sessions_, InvokerFn* handler_invoker_); | ||
| 97 | ~ServiceFrameworkBase() override; | 101 | ~ServiceFrameworkBase() override; |
| 98 | 102 | ||
| 99 | void RegisterHandlersBase(const FunctionInfoBase* functions, std::size_t n); | 103 | void RegisterHandlersBase(const FunctionInfoBase* functions, std::size_t n); |
| @@ -151,11 +155,15 @@ protected: | |||
| 151 | 155 | ||
| 152 | /** | 156 | /** |
| 153 | * Initializes the handler with no functions installed. | 157 | * Initializes the handler with no functions installed. |
| 154 | * @param max_sessions Maximum number of sessions that can be | 158 | * |
| 155 | * connected to this service at the same time. | 159 | * @param system_ The system context to construct this service under. |
| 160 | * @param service_name_ Name of the service. | ||
| 161 | * @param max_sessions_ Maximum number of sessions that can be | ||
| 162 | * connected to this service at the same time. | ||
| 156 | */ | 163 | */ |
| 157 | explicit ServiceFramework(const char* service_name, u32 max_sessions = DefaultMaxSessions) | 164 | explicit ServiceFramework(Core::System& system_, const char* service_name_, |
| 158 | : ServiceFrameworkBase(service_name, max_sessions, Invoker) {} | 165 | u32 max_sessions_ = DefaultMaxSessions) |
| 166 | : ServiceFrameworkBase(system_, service_name_, max_sessions_, Invoker) {} | ||
| 159 | 167 | ||
| 160 | /// Registers handlers in the service. | 168 | /// Registers handlers in the service. |
| 161 | template <std::size_t N> | 169 | template <std::size_t N> |