mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Merge pull request #2906 from Subv/ns_new_framework
Services/NS: Port ns:s to the new service framework.
This commit is contained in:
		
						commit
						255fd8768d
					
				
					 7 changed files with 77 additions and 42 deletions
				
			
		|  | @ -135,7 +135,8 @@ set(SRCS | |||
|             hle/service/nim/nim_aoc.cpp | ||||
|             hle/service/nim/nim_s.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_cec.cpp | ||||
|             hle/service/nwm/nwm_ext.cpp | ||||
|  | @ -335,7 +336,8 @@ set(HEADERS | |||
|             hle/service/nim/nim_aoc.h | ||||
|             hle/service/nim/nim_s.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_cec.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 | ||||
| 
 | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/service/service.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace NS { | ||||
| 
 | ||||
| class NS_S final : public Interface { | ||||
| /// Interface to "ns:s" service
 | ||||
| class NS_S final : public ServiceFramework<NS_S> { | ||||
| public: | ||||
|     NS_S(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "ns:s"; | ||||
|     } | ||||
|     ~NS_S(); | ||||
| }; | ||||
| 
 | ||||
| } // 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/nfc/nfc.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/pm_app.h" | ||||
| #include "core/hle/service/ptm/ptm.h" | ||||
|  | @ -215,6 +215,8 @@ void Init() { | |||
|     SM::g_service_manager = std::make_shared<SM::ServiceManager>(); | ||||
|     SM::ServiceManager::InstallInterfaces(SM::g_service_manager); | ||||
| 
 | ||||
|     NS::InstallInterfaces(*SM::g_service_manager); | ||||
| 
 | ||||
|     AddNamedPort(new ERR::ERR_F); | ||||
| 
 | ||||
|     FS::ArchiveInit(); | ||||
|  | @ -246,7 +248,6 @@ void Init() { | |||
|     AddService(new HTTP::HTTP_C); | ||||
|     AddService(new LDR::LDR_RO); | ||||
|     AddService(new MIC::MIC_U); | ||||
|     AddService(new NS::NS_S); | ||||
|     AddService(new PM::PM_APP); | ||||
|     AddService(new SOC::SOC_U); | ||||
|     AddService(new SSL::SSL_C); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue