diff options
| author | 2020-11-26 15:19:08 -0500 | |
|---|---|---|
| committer | 2020-11-26 20:03:11 -0500 | |
| commit | 1a954b2a596fdfd4fc4b5feb9b43c8147de4cc7f (patch) | |
| tree | 3593cd42e0ba676c3919561983f7e9766fcb641c /src/core/hle/service/ssl | |
| parent | Merge pull request #4975 from comex/invalid-syncpoint-id (diff) | |
| download | yuzu-1a954b2a596fdfd4fc4b5feb9b43c8147de4cc7f.tar.gz yuzu-1a954b2a596fdfd4fc4b5feb9b43c8147de4cc7f.tar.xz yuzu-1a954b2a596fdfd4fc4b5feb9b43c8147de4cc7f.zip | |
service: Eliminate usages of the global system instance
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
Diffstat (limited to 'src/core/hle/service/ssl')
| -rw-r--r-- | src/core/hle/service/ssl/ssl.cpp | 14 | ||||
| -rw-r--r-- | src/core/hle/service/ssl/ssl.h | 6 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp index 1ba8c19a0..dc2baca4a 100644 --- a/src/core/hle/service/ssl/ssl.cpp +++ b/src/core/hle/service/ssl/ssl.cpp | |||
| @@ -12,7 +12,7 @@ namespace Service::SSL { | |||
| 12 | 12 | ||
| 13 | class ISslConnection final : public ServiceFramework<ISslConnection> { | 13 | class ISslConnection final : public ServiceFramework<ISslConnection> { |
| 14 | public: | 14 | public: |
| 15 | ISslConnection() : ServiceFramework("ISslConnection") { | 15 | explicit ISslConnection(Core::System& system_) : ServiceFramework{system_, "ISslConnection"} { |
| 16 | // clang-format off | 16 | // clang-format off |
| 17 | static const FunctionInfo functions[] = { | 17 | static const FunctionInfo functions[] = { |
| 18 | {0, nullptr, "SetSocketDescriptor"}, | 18 | {0, nullptr, "SetSocketDescriptor"}, |
| @@ -52,7 +52,7 @@ public: | |||
| 52 | 52 | ||
| 53 | class ISslContext final : public ServiceFramework<ISslContext> { | 53 | class ISslContext final : public ServiceFramework<ISslContext> { |
| 54 | public: | 54 | public: |
| 55 | ISslContext() : ServiceFramework("ISslContext") { | 55 | explicit ISslContext(Core::System& system_) : ServiceFramework{system_, "ISslContext"} { |
| 56 | static const FunctionInfo functions[] = { | 56 | static const FunctionInfo functions[] = { |
| 57 | {0, &ISslContext::SetOption, "SetOption"}, | 57 | {0, &ISslContext::SetOption, "SetOption"}, |
| 58 | {1, nullptr, "GetOption"}, | 58 | {1, nullptr, "GetOption"}, |
| @@ -92,13 +92,13 @@ private: | |||
| 92 | 92 | ||
| 93 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 93 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 94 | rb.Push(RESULT_SUCCESS); | 94 | rb.Push(RESULT_SUCCESS); |
| 95 | rb.PushIpcInterface<ISslConnection>(); | 95 | rb.PushIpcInterface<ISslConnection>(system); |
| 96 | } | 96 | } |
| 97 | }; | 97 | }; |
| 98 | 98 | ||
| 99 | class SSL final : public ServiceFramework<SSL> { | 99 | class SSL final : public ServiceFramework<SSL> { |
| 100 | public: | 100 | public: |
| 101 | explicit SSL() : ServiceFramework{"ssl"} { | 101 | explicit SSL(Core::System& system_) : ServiceFramework{system_, "ssl"} { |
| 102 | // clang-format off | 102 | // clang-format off |
| 103 | static const FunctionInfo functions[] = { | 103 | static const FunctionInfo functions[] = { |
| 104 | {0, &SSL::CreateContext, "CreateContext"}, | 104 | {0, &SSL::CreateContext, "CreateContext"}, |
| @@ -123,7 +123,7 @@ private: | |||
| 123 | 123 | ||
| 124 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 124 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 125 | rb.Push(RESULT_SUCCESS); | 125 | rb.Push(RESULT_SUCCESS); |
| 126 | rb.PushIpcInterface<ISslContext>(); | 126 | rb.PushIpcInterface<ISslContext>(system); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | void SetInterfaceVersion(Kernel::HLERequestContext& ctx) { | 129 | void SetInterfaceVersion(Kernel::HLERequestContext& ctx) { |
| @@ -137,8 +137,8 @@ private: | |||
| 137 | } | 137 | } |
| 138 | }; | 138 | }; |
| 139 | 139 | ||
| 140 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 140 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { |
| 141 | std::make_shared<SSL>()->InstallAsService(service_manager); | 141 | std::make_shared<SSL>(system)->InstallAsService(service_manager); |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | } // namespace Service::SSL | 144 | } // namespace Service::SSL |
diff --git a/src/core/hle/service/ssl/ssl.h b/src/core/hle/service/ssl/ssl.h index 5cb04c3b9..a3aa4b4b5 100644 --- a/src/core/hle/service/ssl/ssl.h +++ b/src/core/hle/service/ssl/ssl.h | |||
| @@ -4,6 +4,10 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | namespace Core { | ||
| 8 | class System; | ||
| 9 | } | ||
| 10 | |||
| 7 | namespace Service::SM { | 11 | namespace Service::SM { |
| 8 | class ServiceManager; | 12 | class ServiceManager; |
| 9 | } | 13 | } |
| @@ -11,6 +15,6 @@ class ServiceManager; | |||
| 11 | namespace Service::SSL { | 15 | namespace Service::SSL { |
| 12 | 16 | ||
| 13 | /// Registers all SSL services with the specified service manager. | 17 | /// Registers all SSL services with the specified service manager. |
| 14 | void InstallInterfaces(SM::ServiceManager& service_manager); | 18 | void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system); |
| 15 | 19 | ||
| 16 | } // namespace Service::SSL | 20 | } // namespace Service::SSL |