mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #3893 from NarcolepticK/dlp-migrate-framework
service/dlp: Migrate to ServiceFramework
This commit is contained in:
		
						commit
						1eeccdd556
					
				
					 9 changed files with 98 additions and 100 deletions
				
			
		|  | @ -6,18 +6,15 @@ | ||||||
| #include "core/hle/service/dlp/dlp_clnt.h" | #include "core/hle/service/dlp/dlp_clnt.h" | ||||||
| #include "core/hle/service/dlp/dlp_fkcl.h" | #include "core/hle/service/dlp/dlp_fkcl.h" | ||||||
| #include "core/hle/service/dlp/dlp_srvr.h" | #include "core/hle/service/dlp/dlp_srvr.h" | ||||||
| #include "core/hle/service/service.h" |  | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| void Init() { | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||||
|     AddService(new DLP_CLNT_Interface); |     std::make_shared<DLP_CLNT>()->InstallAsService(service_manager); | ||||||
|     AddService(new DLP_FKCL_Interface); |     std::make_shared<DLP_FKCL>()->InstallAsService(service_manager); | ||||||
|     AddService(new DLP_SRVR_Interface); |     std::make_shared<DLP_SRVR>()->InstallAsService(service_manager); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Shutdown() {} |  | ||||||
| 
 |  | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
| } // namespace Service
 | } // namespace Service
 | ||||||
|  |  | ||||||
|  | @ -4,14 +4,13 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include "core/hle/service/service.h" | ||||||
|  | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| /// Initializes the DLP services.
 | /// Initializes the DLP services.
 | ||||||
| void Init(); | void InstallInterfaces(SM::ServiceManager& service_manager); | ||||||
| 
 |  | ||||||
| /// Shuts down the DLP services.
 |  | ||||||
| void Shutdown(); |  | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
| } // namespace Service
 | } // namespace Service
 | ||||||
|  |  | ||||||
|  | @ -2,36 +2,39 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include "core/hle/ipc_helpers.h" | ||||||
| #include "core/hle/service/dlp/dlp_clnt.h" | #include "core/hle/service/dlp/dlp_clnt.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| const Interface::FunctionInfo FunctionTable[] = { | DLP_CLNT::DLP_CLNT() : ServiceFramework("dlp:CLNT", 1) { | ||||||
|     {0x000100C3, nullptr, "Initialize"}, |     static const FunctionInfo functions[] = { | ||||||
|     {0x00020000, nullptr, "Finalize"}, |         // clang-format off
 | ||||||
|     {0x00030000, nullptr, "GetEventDesc"}, |         {0x000100C3, nullptr, "Initialize"}, | ||||||
|     {0x00040000, nullptr, "GetChannel"}, |         {0x00020000, nullptr, "Finalize"}, | ||||||
|     {0x00050180, nullptr, "StartScan"}, |         {0x00030000, nullptr, "GetEventDesc"}, | ||||||
|     {0x00060000, nullptr, "StopScan"}, |         {0x00040000, nullptr, "GetChannel"}, | ||||||
|     {0x00070080, nullptr, "GetServerInfo"}, |         {0x00050180, nullptr, "StartScan"}, | ||||||
|     {0x00080100, nullptr, "GetTitleInfo"}, |         {0x00060000, nullptr, "StopScan"}, | ||||||
|     {0x00090040, nullptr, "GetTitleInfoInOrder"}, |         {0x00070080, nullptr, "GetServerInfo"}, | ||||||
|     {0x000A0080, nullptr, "DeleteScanInfo"}, |         {0x00080100, nullptr, "GetTitleInfo"}, | ||||||
|     {0x000B0100, nullptr, "PrepareForSystemDownload"}, |         {0x00090040, nullptr, "GetTitleInfoInOrder"}, | ||||||
|     {0x000C0000, nullptr, "StartSystemDownload"}, |         {0x000A0080, nullptr, "DeleteScanInfo"}, | ||||||
|     {0x000D0100, nullptr, "StartTitleDownload"}, |         {0x000B0100, nullptr, "PrepareForSystemDownload"}, | ||||||
|     {0x000E0000, nullptr, "GetMyStatus"}, |         {0x000C0000, nullptr, "StartSystemDownload"}, | ||||||
|     {0x000F0040, nullptr, "GetConnectingNodes"}, |         {0x000D0100, nullptr, "StartTitleDownload"}, | ||||||
|     {0x00100040, nullptr, "GetNodeInfo"}, |         {0x000E0000, nullptr, "GetMyStatus"}, | ||||||
|     {0x00110000, nullptr, "GetWirelessRebootPassphrase"}, |         {0x000F0040, nullptr, "GetConnectingNodes"}, | ||||||
|     {0x00120000, nullptr, "StopSession"}, |         {0x00100040, nullptr, "GetNodeInfo"}, | ||||||
|     {0x00130100, nullptr, "GetCupVersion"}, |         {0x00110000, nullptr, "GetWirelessRebootPassphrase"}, | ||||||
|     {0x00140100, nullptr, "GetDupAvailability"}, |         {0x00120000, nullptr, "StopSession"}, | ||||||
| }; |         {0x00130100, nullptr, "GetCupVersion"}, | ||||||
|  |         {0x00140100, nullptr, "GetDupAvailability"}, | ||||||
|  |         // clang-format on
 | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
| DLP_CLNT_Interface::DLP_CLNT_Interface() { |     RegisterHandlers(functions); | ||||||
|     Register(FunctionTable); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -9,13 +9,10 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| class DLP_CLNT_Interface final : public Interface { | class DLP_CLNT final : public ServiceFramework<DLP_CLNT> { | ||||||
| public: | public: | ||||||
|     DLP_CLNT_Interface(); |     DLP_CLNT(); | ||||||
| 
 |     ~DLP_CLNT() = default; | ||||||
|     std::string GetPortName() const override { |  | ||||||
|         return "dlp:CLNT"; |  | ||||||
|     } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -2,33 +2,36 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include "core/hle/ipc_helpers.h" | ||||||
| #include "core/hle/service/dlp/dlp_fkcl.h" | #include "core/hle/service/dlp/dlp_fkcl.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| const Interface::FunctionInfo FunctionTable[] = { | DLP_FKCL::DLP_FKCL() : ServiceFramework("dlp:FKCL", 1) { | ||||||
|     {0x00010083, nullptr, "Initialize"}, |     static const FunctionInfo functions[] = { | ||||||
|     {0x00020000, nullptr, "Finalize"}, |         // clang-format off
 | ||||||
|     {0x00030000, nullptr, "GetEventDesc"}, |         {0x00010083, nullptr, "Initialize"}, | ||||||
|     {0x00040000, nullptr, "GetChannels"}, |         {0x00020000, nullptr, "Finalize"}, | ||||||
|     {0x00050180, nullptr, "StartScan"}, |         {0x00030000, nullptr, "GetEventDesc"}, | ||||||
|     {0x00060000, nullptr, "StopScan"}, |         {0x00040000, nullptr, "GetChannels"}, | ||||||
|     {0x00070080, nullptr, "GetServerInfo"}, |         {0x00050180, nullptr, "StartScan"}, | ||||||
|     {0x00080100, nullptr, "GetTitleInfo"}, |         {0x00060000, nullptr, "StopScan"}, | ||||||
|     {0x00090040, nullptr, "GetTitleInfoInOrder"}, |         {0x00070080, nullptr, "GetServerInfo"}, | ||||||
|     {0x000A0080, nullptr, "DeleteScanInfo"}, |         {0x00080100, nullptr, "GetTitleInfo"}, | ||||||
|     {0x000B0100, nullptr, "StartFakeSession"}, |         {0x00090040, nullptr, "GetTitleInfoInOrder"}, | ||||||
|     {0x000C0000, nullptr, "GetMyStatus"}, |         {0x000A0080, nullptr, "DeleteScanInfo"}, | ||||||
|     {0x000D0040, nullptr, "GetConnectingNodes"}, |         {0x000B0100, nullptr, "StartFakeSession"}, | ||||||
|     {0x000E0040, nullptr, "GetNodeInfo"}, |         {0x000C0000, nullptr, "GetMyStatus"}, | ||||||
|     {0x000F0000, nullptr, "GetWirelessRebootPassphrase"}, |         {0x000D0040, nullptr, "GetConnectingNodes"}, | ||||||
|     {0x00100000, nullptr, "StopSession"}, |         {0x000E0040, nullptr, "GetNodeInfo"}, | ||||||
|     {0x00110203, nullptr, "Initialize2"}, |         {0x000F0000, nullptr, "GetWirelessRebootPassphrase"}, | ||||||
| }; |         {0x00100000, nullptr, "StopSession"}, | ||||||
|  |         {0x00110203, nullptr, "Initialize2"}, | ||||||
|  |         // clang-format on
 | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
| DLP_FKCL_Interface::DLP_FKCL_Interface() { |     RegisterHandlers(functions); | ||||||
|     Register(FunctionTable); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -9,13 +9,10 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| class DLP_FKCL_Interface final : public Interface { | class DLP_FKCL final : public ServiceFramework<DLP_FKCL> { | ||||||
| public: | public: | ||||||
|     DLP_FKCL_Interface(); |     DLP_FKCL(); | ||||||
| 
 |     ~DLP_FKCL() = default; | ||||||
|     std::string GetPortName() const override { |  | ||||||
|         return "dlp:FKCL"; |  | ||||||
|     } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -4,43 +4,46 @@ | ||||||
| 
 | 
 | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/ipc.h" | #include "core/hle/ipc_helpers.h" | ||||||
| #include "core/hle/result.h" | #include "core/hle/result.h" | ||||||
| #include "core/hle/service/dlp/dlp_srvr.h" | #include "core/hle/service/dlp/dlp_srvr.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| static void IsChild(Interface* self) { | void DLP_SRVR::IsChild(Kernel::HLERequestContext& ctx) { | ||||||
|     u32* cmd_buff = Kernel::GetCommandBuffer(); |     IPC::RequestParser rp(ctx, 0x0E, 0, 0); | ||||||
| 
 | 
 | ||||||
|     cmd_buff[1] = RESULT_SUCCESS.raw; |     IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); | ||||||
|     cmd_buff[2] = 0; |     rb.Push(RESULT_SUCCESS); | ||||||
|  |     rb.Push(false); | ||||||
| 
 | 
 | ||||||
|     NGLOG_WARNING(Service_DLP, "(STUBBED) called"); |     NGLOG_WARNING(Service_DLP, "(STUBBED) called"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const Interface::FunctionInfo FunctionTable[] = { | DLP_SRVR::DLP_SRVR() : ServiceFramework("dlp:SRVR", 1) { | ||||||
|     {0x00010183, nullptr, "Initialize"}, |     static const FunctionInfo functions[] = { | ||||||
|     {0x00020000, nullptr, "Finalize"}, |         // clang-format off
 | ||||||
|     {0x00030000, nullptr, "GetServerState"}, |         {0x00010183, nullptr, "Initialize"}, | ||||||
|     {0x00040000, nullptr, "GetEventDescription"}, |         {0x00020000, nullptr, "Finalize"}, | ||||||
|     {0x00050080, nullptr, "StartAccepting"}, |         {0x00030000, nullptr, "GetServerState"}, | ||||||
|     {0x00060000, nullptr, "EndAccepting"}, |         {0x00040000, nullptr, "GetEventDescription"}, | ||||||
|     {0x00070000, nullptr, "StartDistribution"}, |         {0x00050080, nullptr, "StartAccepting"}, | ||||||
|     {0x000800C0, nullptr, "SendWirelessRebootPassphrase"}, |         {0x00060000, nullptr, "EndAccepting"}, | ||||||
|     {0x00090040, nullptr, "AcceptClient"}, |         {0x00070000, nullptr, "StartDistribution"}, | ||||||
|     {0x000A0040, nullptr, "DisconnectClient"}, |         {0x000800C0, nullptr, "SendWirelessRebootPassphrase"}, | ||||||
|     {0x000B0042, nullptr, "GetConnectingClients"}, |         {0x00090040, nullptr, "AcceptClient"}, | ||||||
|     {0x000C0040, nullptr, "GetClientInfo"}, |         {0x000A0040, nullptr, "DisconnectClient"}, | ||||||
|     {0x000D0040, nullptr, "GetClientState"}, |         {0x000B0042, nullptr, "GetConnectingClients"}, | ||||||
|     {0x000E0040, IsChild, "IsChild"}, |         {0x000C0040, nullptr, "GetClientInfo"}, | ||||||
|     {0x000F0303, nullptr, "InitializeWithName"}, |         {0x000D0040, nullptr, "GetClientState"}, | ||||||
|     {0x00100000, nullptr, "GetDupNoticeNeed"}, |         {0x000E0040, &DLP_SRVR::IsChild, "IsChild"}, | ||||||
| }; |         {0x000F0303, nullptr, "InitializeWithName"}, | ||||||
|  |         {0x00100000, nullptr, "GetDupNoticeNeed"}, | ||||||
|  |         // clang-format on
 | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
| DLP_SRVR_Interface::DLP_SRVR_Interface() { |     RegisterHandlers(functions); | ||||||
|     Register(FunctionTable); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -9,13 +9,13 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace DLP { | namespace DLP { | ||||||
| 
 | 
 | ||||||
| class DLP_SRVR_Interface final : public Interface { | class DLP_SRVR final : public ServiceFramework<DLP_SRVR> { | ||||||
| public: | public: | ||||||
|     DLP_SRVR_Interface(); |     DLP_SRVR(); | ||||||
|  |     ~DLP_SRVR() = default; | ||||||
| 
 | 
 | ||||||
|     std::string GetPortName() const override { | private: | ||||||
|         return "dlp:SRVR"; |     void IsChild(Kernel::HLERequestContext& ctx); | ||||||
|     } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace DLP
 | } // namespace DLP
 | ||||||
|  |  | ||||||
|  | @ -242,7 +242,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | ||||||
|     CAM::InstallInterfaces(*sm); |     CAM::InstallInterfaces(*sm); | ||||||
|     CECD::Init(); |     CECD::Init(); | ||||||
|     CFG::InstallInterfaces(*sm); |     CFG::InstallInterfaces(*sm); | ||||||
|     DLP::Init(); |     DLP::InstallInterfaces(*sm); | ||||||
|     FRD::InstallInterfaces(*sm); |     FRD::InstallInterfaces(*sm); | ||||||
|     GSP::InstallInterfaces(*sm); |     GSP::InstallInterfaces(*sm); | ||||||
|     HID::InstallInterfaces(*sm); |     HID::InstallInterfaces(*sm); | ||||||
|  | @ -269,7 +269,6 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | ||||||
| 
 | 
 | ||||||
| /// Shutdown ServiceManager
 | /// Shutdown ServiceManager
 | ||||||
| void Shutdown() { | void Shutdown() { | ||||||
|     DLP::Shutdown(); |  | ||||||
|     CECD::Shutdown(); |     CECD::Shutdown(); | ||||||
|     BOSS::Shutdown(); |     BOSS::Shutdown(); | ||||||
|     FS::ArchiveShutdown(); |     FS::ArchiveShutdown(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue