Merge pull request #2906 from Subv/ns_new_framework
Services/NS: Port ns:s to the new service framework.
This commit is contained in:
		| @@ -135,7 +135,8 @@ set(SRCS | |||||||
|             hle/service/nim/nim_aoc.cpp |             hle/service/nim/nim_aoc.cpp | ||||||
|             hle/service/nim/nim_s.cpp |             hle/service/nim/nim_s.cpp | ||||||
|             hle/service/nim/nim_u.cpp |             hle/service/nim/nim_u.cpp | ||||||
|             hle/service/ns_s.cpp |             hle/service/ns/ns.cpp | ||||||
|  |             hle/service/ns/ns_s.cpp | ||||||
|             hle/service/nwm/nwm.cpp |             hle/service/nwm/nwm.cpp | ||||||
|             hle/service/nwm/nwm_cec.cpp |             hle/service/nwm/nwm_cec.cpp | ||||||
|             hle/service/nwm/nwm_ext.cpp |             hle/service/nwm/nwm_ext.cpp | ||||||
| @@ -335,7 +336,8 @@ set(HEADERS | |||||||
|             hle/service/nim/nim_aoc.h |             hle/service/nim/nim_aoc.h | ||||||
|             hle/service/nim/nim_s.h |             hle/service/nim/nim_s.h | ||||||
|             hle/service/nim/nim_u.h |             hle/service/nim/nim_u.h | ||||||
|             hle/service/ns_s.h |             hle/service/ns/ns.h | ||||||
|  |             hle/service/ns/ns_s.h | ||||||
|             hle/service/nwm/nwm.h |             hle/service/nwm/nwm.h | ||||||
|             hle/service/nwm/nwm_cec.h |             hle/service/nwm/nwm_cec.h | ||||||
|             hle/service/nwm/nwm_ext.h |             hle/service/nwm/nwm_ext.h | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								src/core/hle/service/ns/ns.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/ns/ns.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // Copyright 2017 Citra Emulator Project | ||||||
|  | // Licensed under GPLv2 or any later version | ||||||
|  | // Refer to the license.txt file included. | ||||||
|  |  | ||||||
|  | #include "core/hle/service/ns/ns.h" | ||||||
|  | #include "core/hle/service/ns/ns_s.h" | ||||||
|  |  | ||||||
|  | namespace Service { | ||||||
|  | namespace NS { | ||||||
|  |  | ||||||
|  | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||||
|  |     std::make_shared<NS_S>()->InstallAsService(service_manager); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace NS | ||||||
|  | } // namespace Service | ||||||
							
								
								
									
										16
									
								
								src/core/hle/service/ns/ns.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/ns/ns.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // Copyright 2017 Citra Emulator Project | ||||||
|  | // Licensed under GPLv2 or any later version | ||||||
|  | // Refer to the license.txt file included. | ||||||
|  |  | ||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include "core/hle/service/service.h" | ||||||
|  |  | ||||||
|  | namespace Service { | ||||||
|  | namespace NS { | ||||||
|  |  | ||||||
|  | /// Registers all NS services with the specified service manager. | ||||||
|  | void InstallInterfaces(SM::ServiceManager& service_manager); | ||||||
|  |  | ||||||
|  | } // namespace NS | ||||||
|  | } // namespace Service | ||||||
							
								
								
									
										34
									
								
								src/core/hle/service/ns/ns_s.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/core/hle/service/ns/ns_s.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | // Copyright 2015 Citra Emulator Project | ||||||
|  | // Licensed under GPLv2 or any later version | ||||||
|  | // Refer to the license.txt file included. | ||||||
|  |  | ||||||
|  | #include "core/hle/service/ns/ns_s.h" | ||||||
|  |  | ||||||
|  | namespace Service { | ||||||
|  | namespace NS { | ||||||
|  |  | ||||||
|  | NS_S::NS_S() : ServiceFramework("ns:s", 2) { | ||||||
|  |     static const FunctionInfo functions[] = { | ||||||
|  |         {0x000100C0, nullptr, "LaunchFIRM"}, | ||||||
|  |         {0x000200C0, nullptr, "LaunchTitle"}, | ||||||
|  |         {0x00030000, nullptr, "TerminateApplication"}, | ||||||
|  |         {0x00040040, nullptr, "TerminateProcess"}, | ||||||
|  |         {0x000500C0, nullptr, "LaunchApplicationFIRM"}, | ||||||
|  |         {0x00060042, nullptr, "SetFIRMParams4A0"}, | ||||||
|  |         {0x00070042, nullptr, "CardUpdateInitialize"}, | ||||||
|  |         {0x00080000, nullptr, "CardUpdateShutdown"}, | ||||||
|  |         {0x000D0140, nullptr, "SetTWLBannerHMAC"}, | ||||||
|  |         {0x000E0000, nullptr, "ShutdownAsync"}, | ||||||
|  |         {0x00100180, nullptr, "RebootSystem"}, | ||||||
|  |         {0x00110100, nullptr, "TerminateTitle"}, | ||||||
|  |         {0x001200C0, nullptr, "SetApplicationCpuTimeLimit"}, | ||||||
|  |         {0x00150140, nullptr, "LaunchApplication"}, | ||||||
|  |         {0x00160000, nullptr, "RebootSystemClean"}, | ||||||
|  |     }; | ||||||
|  |     RegisterHandlers(functions); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | NS_S::~NS_S() = default; | ||||||
|  |  | ||||||
|  | } // namespace NS | ||||||
|  | } // namespace Service | ||||||
| @@ -4,18 +4,17 @@ | |||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include "core/hle/kernel/kernel.h" | ||||||
| #include "core/hle/service/service.h" | #include "core/hle/service/service.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace NS { | namespace NS { | ||||||
| 
 | 
 | ||||||
| class NS_S final : public Interface { | /// Interface to "ns:s" service
 | ||||||
|  | class NS_S final : public ServiceFramework<NS_S> { | ||||||
| public: | public: | ||||||
|     NS_S(); |     NS_S(); | ||||||
| 
 |     ~NS_S(); | ||||||
|     std::string GetPortName() const override { |  | ||||||
|         return "ns:s"; |  | ||||||
|     } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace NS
 | } // namespace NS
 | ||||||
| @@ -1,33 +0,0 @@ | |||||||
| // Copyright 2015 Citra Emulator Project |  | ||||||
| // Licensed under GPLv2 or any later version |  | ||||||
| // Refer to the license.txt file included. |  | ||||||
|  |  | ||||||
| #include "core/hle/service/ns_s.h" |  | ||||||
|  |  | ||||||
| namespace Service { |  | ||||||
| namespace NS { |  | ||||||
|  |  | ||||||
| const Interface::FunctionInfo FunctionTable[] = { |  | ||||||
|     {0x000100C0, nullptr, "LaunchFIRM"}, |  | ||||||
|     {0x000200C0, nullptr, "LaunchTitle"}, |  | ||||||
|     {0x00030000, nullptr, "TerminateApplication"}, |  | ||||||
|     {0x00040040, nullptr, "TerminateProcess"}, |  | ||||||
|     {0x000500C0, nullptr, "LaunchApplicationFIRM"}, |  | ||||||
|     {0x00060042, nullptr, "SetFIRMParams4A0"}, |  | ||||||
|     {0x00070042, nullptr, "CardUpdateInitialize"}, |  | ||||||
|     {0x00080000, nullptr, "CardUpdateShutdown"}, |  | ||||||
|     {0x000D0140, nullptr, "SetTWLBannerHMAC"}, |  | ||||||
|     {0x000E0000, nullptr, "ShutdownAsync"}, |  | ||||||
|     {0x00100180, nullptr, "RebootSystem"}, |  | ||||||
|     {0x00110100, nullptr, "TerminateTitle"}, |  | ||||||
|     {0x001200C0, nullptr, "SetApplicationCpuTimeLimit"}, |  | ||||||
|     {0x00150140, nullptr, "LaunchApplication"}, |  | ||||||
|     {0x00160000, nullptr, "RebootSystemClean"}, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| NS_S::NS_S() { |  | ||||||
|     Register(FunctionTable); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| } // namespace NS |  | ||||||
| } // namespace Service |  | ||||||
| @@ -38,7 +38,7 @@ | |||||||
| #include "core/hle/service/news/news.h" | #include "core/hle/service/news/news.h" | ||||||
| #include "core/hle/service/nfc/nfc.h" | #include "core/hle/service/nfc/nfc.h" | ||||||
| #include "core/hle/service/nim/nim.h" | #include "core/hle/service/nim/nim.h" | ||||||
| #include "core/hle/service/ns_s.h" | #include "core/hle/service/ns/ns.h" | ||||||
| #include "core/hle/service/nwm/nwm.h" | #include "core/hle/service/nwm/nwm.h" | ||||||
| #include "core/hle/service/pm_app.h" | #include "core/hle/service/pm_app.h" | ||||||
| #include "core/hle/service/ptm/ptm.h" | #include "core/hle/service/ptm/ptm.h" | ||||||
| @@ -215,6 +215,8 @@ void Init() { | |||||||
|     SM::g_service_manager = std::make_shared<SM::ServiceManager>(); |     SM::g_service_manager = std::make_shared<SM::ServiceManager>(); | ||||||
|     SM::ServiceManager::InstallInterfaces(SM::g_service_manager); |     SM::ServiceManager::InstallInterfaces(SM::g_service_manager); | ||||||
|  |  | ||||||
|  |     NS::InstallInterfaces(*SM::g_service_manager); | ||||||
|  |  | ||||||
|     AddNamedPort(new ERR::ERR_F); |     AddNamedPort(new ERR::ERR_F); | ||||||
|  |  | ||||||
|     FS::ArchiveInit(); |     FS::ArchiveInit(); | ||||||
| @@ -246,7 +248,6 @@ void Init() { | |||||||
|     AddService(new HTTP::HTTP_C); |     AddService(new HTTP::HTTP_C); | ||||||
|     AddService(new LDR::LDR_RO); |     AddService(new LDR::LDR_RO); | ||||||
|     AddService(new MIC::MIC_U); |     AddService(new MIC::MIC_U); | ||||||
|     AddService(new NS::NS_S); |  | ||||||
|     AddService(new PM::PM_APP); |     AddService(new PM::PM_APP); | ||||||
|     AddService(new SOC::SOC_U); |     AddService(new SOC::SOC_U); | ||||||
|     AddService(new SSL::SSL_C); |     AddService(new SSL::SSL_C); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user