mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #2320 from mailwl/cecd-update
Service/CECD: Add cecd:ndm service
This commit is contained in:
		
						commit
						63e8174caa
					
				
					 8 changed files with 81 additions and 13 deletions
				
			
		|  | @ -75,6 +75,7 @@ set(SRCS | ||||||
|             hle/service/cam/cam_s.cpp |             hle/service/cam/cam_s.cpp | ||||||
|             hle/service/cam/cam_u.cpp |             hle/service/cam/cam_u.cpp | ||||||
|             hle/service/cecd/cecd.cpp |             hle/service/cecd/cecd.cpp | ||||||
|  |             hle/service/cecd/cecd_ndm.cpp | ||||||
|             hle/service/cecd/cecd_s.cpp |             hle/service/cecd/cecd_s.cpp | ||||||
|             hle/service/cecd/cecd_u.cpp |             hle/service/cecd/cecd_u.cpp | ||||||
|             hle/service/cfg/cfg.cpp |             hle/service/cfg/cfg.cpp | ||||||
|  | @ -241,6 +242,7 @@ set(HEADERS | ||||||
|             hle/service/cam/cam_s.h |             hle/service/cam/cam_s.h | ||||||
|             hle/service/cam/cam_u.h |             hle/service/cam/cam_u.h | ||||||
|             hle/service/cecd/cecd.h |             hle/service/cecd/cecd.h | ||||||
|  |             hle/service/cecd/cecd_ndm.h | ||||||
|             hle/service/cecd/cecd_s.h |             hle/service/cecd/cecd_s.h | ||||||
|             hle/service/cecd/cecd_u.h |             hle/service/cecd/cecd_u.h | ||||||
|             hle/service/cfg/cfg.h |             hle/service/cfg/cfg.h | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/kernel/event.h" | #include "core/hle/kernel/event.h" | ||||||
| #include "core/hle/service/cecd/cecd.h" | #include "core/hle/service/cecd/cecd.h" | ||||||
|  | #include "core/hle/service/cecd/cecd_ndm.h" | ||||||
| #include "core/hle/service/cecd/cecd_s.h" | #include "core/hle/service/cecd/cecd_s.h" | ||||||
| #include "core/hle/service/cecd/cecd_u.h" | #include "core/hle/service/cecd/cecd_u.h" | ||||||
| #include "core/hle/service/service.h" | #include "core/hle/service/service.h" | ||||||
|  | @ -43,12 +44,13 @@ void GetChangeStateEventHandle(Service::Interface* self) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Init() { | void Init() { | ||||||
|     AddService(new CECD_S_Interface); |     AddService(new CECD_NDM); | ||||||
|     AddService(new CECD_U_Interface); |     AddService(new CECD_S); | ||||||
|  |     AddService(new CECD_U); | ||||||
| 
 | 
 | ||||||
|     cecinfo_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD_U::cecinfo_event"); |     cecinfo_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD::cecinfo_event"); | ||||||
|     change_state_event = |     change_state_event = | ||||||
|         Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD_U::change_state_event"); |         Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD::change_state_event"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Shutdown() { | void Shutdown() { | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								src/core/hle/service/cecd/cecd_ndm.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/core/hle/service/cecd/cecd_ndm.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | // Copyright 2016 Citra Emulator Project
 | ||||||
|  | // Licensed under GPLv2 or any later version
 | ||||||
|  | // Refer to the license.txt file included.
 | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/cecd/cecd.h" | ||||||
|  | #include "core/hle/service/cecd/cecd_ndm.h" | ||||||
|  | 
 | ||||||
|  | namespace Service { | ||||||
|  | namespace CECD { | ||||||
|  | 
 | ||||||
|  | static const Interface::FunctionInfo FunctionTable[] = { | ||||||
|  |     {0x00010000, nullptr, "Initialize"}, | ||||||
|  |     {0x00020000, nullptr, "Deinitialize"}, | ||||||
|  |     {0x00030000, nullptr, "ResumeDaemon"}, | ||||||
|  |     {0x00040040, nullptr, "SuspendDaemon"}, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | CECD_NDM::CECD_NDM() { | ||||||
|  |     Register(FunctionTable); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | } // namespace CECD
 | ||||||
|  | } // namespace Service
 | ||||||
							
								
								
									
										22
									
								
								src/core/hle/service/cecd/cecd_ndm.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/cecd/cecd_ndm.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | ||||||
|  | // Copyright 2016 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 CECD { | ||||||
|  | 
 | ||||||
|  | class CECD_NDM : public Interface { | ||||||
|  | public: | ||||||
|  |     CECD_NDM(); | ||||||
|  | 
 | ||||||
|  |     std::string GetPortName() const override { | ||||||
|  |         return "cecd:ndm"; | ||||||
|  |     } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace CECD
 | ||||||
|  | } // namespace Service
 | ||||||
|  | @ -2,16 +2,34 @@ | ||||||
| // 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/service/cecd/cecd.h" | ||||||
| #include "core/hle/service/cecd/cecd_s.h" | #include "core/hle/service/cecd/cecd_s.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace CECD { | namespace CECD { | ||||||
| 
 | 
 | ||||||
| // Empty arrays are illegal -- commented out until an entry is added.
 | static const Interface::FunctionInfo FunctionTable[] = { | ||||||
| // const Interface::FunctionInfo FunctionTable[] = { };
 |     // cecd:u shared commands
 | ||||||
|  |     {0x000100C2, nullptr, "OpenRawFile"}, | ||||||
|  |     {0x00020042, nullptr, "ReadRawFile"}, | ||||||
|  |     {0x00030104, nullptr, "ReadMessage"}, | ||||||
|  |     {0x00040106, nullptr, "ReadMessageWithHMAC"}, | ||||||
|  |     {0x00050042, nullptr, "WriteRawFile"}, | ||||||
|  |     {0x00060104, nullptr, "WriteMessage"}, | ||||||
|  |     {0x00070106, nullptr, "WriteMessageWithHMAC"}, | ||||||
|  |     {0x00080102, nullptr, "Delete"}, | ||||||
|  |     {0x000A00C4, nullptr, "GetSystemInfo"}, | ||||||
|  |     {0x000B0040, nullptr, "RunCommand"}, | ||||||
|  |     {0x000C0040, nullptr, "RunCommandAlt"}, | ||||||
|  |     {0x000E0000, GetCecStateAbbreviated, "GetCecStateAbbreviated"}, | ||||||
|  |     {0x000F0000, GetCecInfoEventHandle, "GetCecInfoEventHandle"}, | ||||||
|  |     {0x00100000, GetChangeStateEventHandle, "GetChangeStateEventHandle"}, | ||||||
|  |     {0x00110104, nullptr, "OpenAndWrite"}, | ||||||
|  |     {0x00120104, nullptr, "OpenAndRead"}, | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| CECD_S_Interface::CECD_S_Interface() { | CECD_S::CECD_S() { | ||||||
|     // Register(FunctionTable);
 |     Register(FunctionTable); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace CECD
 | } // namespace CECD
 | ||||||
|  |  | ||||||
|  | @ -9,9 +9,9 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace CECD { | namespace CECD { | ||||||
| 
 | 
 | ||||||
| class CECD_S_Interface : public Interface { | class CECD_S : public Interface { | ||||||
| public: | public: | ||||||
|     CECD_S_Interface(); |     CECD_S(); | ||||||
| 
 | 
 | ||||||
|     std::string GetPortName() const override { |     std::string GetPortName() const override { | ||||||
|         return "cecd:s"; |         return "cecd:s"; | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ namespace Service { | ||||||
| namespace CECD { | namespace CECD { | ||||||
| 
 | 
 | ||||||
| static const Interface::FunctionInfo FunctionTable[] = { | static const Interface::FunctionInfo FunctionTable[] = { | ||||||
|  |     // cecd:u shared commands
 | ||||||
|     {0x000100C2, nullptr, "OpenRawFile"}, |     {0x000100C2, nullptr, "OpenRawFile"}, | ||||||
|     {0x00020042, nullptr, "ReadRawFile"}, |     {0x00020042, nullptr, "ReadRawFile"}, | ||||||
|     {0x00030104, nullptr, "ReadMessage"}, |     {0x00030104, nullptr, "ReadMessage"}, | ||||||
|  | @ -27,7 +28,7 @@ static const Interface::FunctionInfo FunctionTable[] = { | ||||||
|     {0x00120104, nullptr, "OpenAndRead"}, |     {0x00120104, nullptr, "OpenAndRead"}, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| CECD_U_Interface::CECD_U_Interface() { | CECD_U::CECD_U() { | ||||||
|     Register(FunctionTable); |     Register(FunctionTable); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,9 +9,9 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace CECD { | namespace CECD { | ||||||
| 
 | 
 | ||||||
| class CECD_U_Interface : public Interface { | class CECD_U : public Interface { | ||||||
| public: | public: | ||||||
|     CECD_U_Interface(); |     CECD_U(); | ||||||
| 
 | 
 | ||||||
|     std::string GetPortName() const override { |     std::string GetPortName() const override { | ||||||
|         return "cecd:u"; |         return "cecd:u"; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue