diff options
author | Sebastian Valle <subv2112@gmail.com> | 2018-07-26 06:43:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-26 06:43:03 +0200 |
commit | 0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16 (patch) | |
tree | d7a8cefb08901e4c023223c1b639e56173d575d4 /src/core/hle | |
parent | Merge pull request #824 from lioncash/nvdrv (diff) | |
parent | service/nifm: Deduplicate interface code (diff) | |
download | yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar.gz yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar.bz2 yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar.lz yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar.xz yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.tar.zst yuzu-0e05f98be24e3a3fe1d6c6efd449b2d02b41bf16.zip |
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/service/nifm/nifm.cpp | 47 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm.h | 19 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_a.cpp | 17 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_a.h | 16 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_s.cpp | 17 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_s.h | 16 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_u.cpp | 17 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm_u.h | 16 |
8 files changed, 30 insertions, 135 deletions
diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 0d951084b..cfe8d9178 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -5,9 +5,7 @@ #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/event.h" #include "core/hle/service/nifm/nifm.h" -#include "core/hle/service/nifm/nifm_a.h" -#include "core/hle/service/nifm/nifm_s.h" -#include "core/hle/service/nifm/nifm_u.h" +#include "core/hle/service/service.h" namespace Service::NIFM { @@ -210,28 +208,35 @@ IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") { RegisterHandlers(functions); } -void Module::Interface::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; - rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface<IGeneralService>(); - LOG_DEBUG(Service_NIFM, "called"); -} +class NetworkInterface final : public ServiceFramework<NetworkInterface> { +public: + explicit NetworkInterface(const char* name) : ServiceFramework{name} { + static const FunctionInfo functions[] = { + {4, &NetworkInterface::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, + {5, &NetworkInterface::CreateGeneralService, "CreateGeneralService"}, + }; + RegisterHandlers(functions); + } -void Module::Interface::CreateGeneralService(Kernel::HLERequestContext& ctx) { - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; - rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface<IGeneralService>(); - LOG_DEBUG(Service_NIFM, "called"); -} + void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IGeneralService>(); + LOG_DEBUG(Service_NIFM, "called"); + } -Module::Interface::Interface(std::shared_ptr<Module> module, const char* name) - : ServiceFramework(name), module(std::move(module)) {} + void CreateGeneralService(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IGeneralService>(); + LOG_DEBUG(Service_NIFM, "called"); + } +}; void InstallInterfaces(SM::ServiceManager& service_manager) { - auto module = std::make_shared<Module>(); - std::make_shared<NIFM_A>(module)->InstallAsService(service_manager); - std::make_shared<NIFM_S>(module)->InstallAsService(service_manager); - std::make_shared<NIFM_U>(module)->InstallAsService(service_manager); + std::make_shared<NetworkInterface>("nifm:a")->InstallAsService(service_manager); + std::make_shared<NetworkInterface>("nifm:s")->InstallAsService(service_manager); + std::make_shared<NetworkInterface>("nifm:u")->InstallAsService(service_manager); } } // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm.h b/src/core/hle/service/nifm/nifm.h index 11f1b5831..4616b3b48 100644 --- a/src/core/hle/service/nifm/nifm.h +++ b/src/core/hle/service/nifm/nifm.h @@ -4,24 +4,13 @@ #pragma once -#include "core/hle/service/service.h" +namespace Service::SM { +class ServiceManager; +} namespace Service::NIFM { -class Module final { -public: - class Interface : public ServiceFramework<Interface> { - public: - explicit Interface(std::shared_ptr<Module> module, const char* name); - - void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx); - void CreateGeneralService(Kernel::HLERequestContext& ctx); - - protected: - std::shared_ptr<Module> module; - }; -}; - +/// Registers all NIFM services with the specified service manager. void InstallInterfaces(SM::ServiceManager& service_manager); } // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_a.cpp b/src/core/hle/service/nifm/nifm_a.cpp deleted file mode 100644 index b7f296a20..000000000 --- a/src/core/hle/service/nifm/nifm_a.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/service/nifm/nifm_a.h" - -namespace Service::NIFM { - -NIFM_A::NIFM_A(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:a") { - static const FunctionInfo functions[] = { - {4, &NIFM_A::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, - {5, &NIFM_A::CreateGeneralService, "CreateGeneralService"}, - }; - RegisterHandlers(functions); -} - -} // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_a.h b/src/core/hle/service/nifm/nifm_a.h deleted file mode 100644 index c3ba33110..000000000 --- a/src/core/hle/service/nifm/nifm_a.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "core/hle/service/nifm/nifm.h" - -namespace Service::NIFM { - -class NIFM_A final : public Module::Interface { -public: - explicit NIFM_A(std::shared_ptr<Module> module); -}; - -} // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_s.cpp b/src/core/hle/service/nifm/nifm_s.cpp deleted file mode 100644 index 96e3c0cee..000000000 --- a/src/core/hle/service/nifm/nifm_s.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/service/nifm/nifm_s.h" - -namespace Service::NIFM { - -NIFM_S::NIFM_S(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:s") { - static const FunctionInfo functions[] = { - {4, &NIFM_S::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, - {5, &NIFM_S::CreateGeneralService, "CreateGeneralService"}, - }; - RegisterHandlers(functions); -} - -} // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_s.h b/src/core/hle/service/nifm/nifm_s.h deleted file mode 100644 index 8d1635a5d..000000000 --- a/src/core/hle/service/nifm/nifm_s.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "core/hle/service/nifm/nifm.h" - -namespace Service::NIFM { - -class NIFM_S final : public Module::Interface { -public: - explicit NIFM_S(std::shared_ptr<Module> module); -}; - -} // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_u.cpp b/src/core/hle/service/nifm/nifm_u.cpp deleted file mode 100644 index 8cb75b903..000000000 --- a/src/core/hle/service/nifm/nifm_u.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/service/nifm/nifm_u.h" - -namespace Service::NIFM { - -NIFM_U::NIFM_U(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "nifm:u") { - static const FunctionInfo functions[] = { - {4, &NIFM_U::CreateGeneralServiceOld, "CreateGeneralServiceOld"}, - {5, &NIFM_U::CreateGeneralService, "CreateGeneralService"}, - }; - RegisterHandlers(functions); -} - -} // namespace Service::NIFM diff --git a/src/core/hle/service/nifm/nifm_u.h b/src/core/hle/service/nifm/nifm_u.h deleted file mode 100644 index def9726b1..000000000 --- a/src/core/hle/service/nifm/nifm_u.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2018 yuzu emulator team -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "core/hle/service/nifm/nifm.h" - -namespace Service::NIFM { - -class NIFM_U final : public Module::Interface { -public: - explicit NIFM_U(std::shared_ptr<Module> module); -}; - -} // namespace Service::NIFM |