diff options
| -rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_ndm.cpp | 23 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_ndm.h | 22 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_s.cpp | 26 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_s.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_u.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/cecd/cecd_u.h | 4 |
8 files changed, 81 insertions, 13 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 7b3b4389a..e027151fe 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -74,6 +74,7 @@ set(SRCS | |||
| 74 | hle/service/cam/cam_s.cpp | 74 | hle/service/cam/cam_s.cpp |
| 75 | hle/service/cam/cam_u.cpp | 75 | hle/service/cam/cam_u.cpp |
| 76 | hle/service/cecd/cecd.cpp | 76 | hle/service/cecd/cecd.cpp |
| 77 | hle/service/cecd/cecd_ndm.cpp | ||
| 77 | hle/service/cecd/cecd_s.cpp | 78 | hle/service/cecd/cecd_s.cpp |
| 78 | hle/service/cecd/cecd_u.cpp | 79 | hle/service/cecd/cecd_u.cpp |
| 79 | hle/service/cfg/cfg.cpp | 80 | hle/service/cfg/cfg.cpp |
| @@ -239,6 +240,7 @@ set(HEADERS | |||
| 239 | hle/service/cam/cam_s.h | 240 | hle/service/cam/cam_s.h |
| 240 | hle/service/cam/cam_u.h | 241 | hle/service/cam/cam_u.h |
| 241 | hle/service/cecd/cecd.h | 242 | hle/service/cecd/cecd.h |
| 243 | hle/service/cecd/cecd_ndm.h | ||
| 242 | hle/service/cecd/cecd_s.h | 244 | hle/service/cecd/cecd_s.h |
| 243 | hle/service/cecd/cecd_u.h | 245 | hle/service/cecd/cecd_u.h |
| 244 | hle/service/cfg/cfg.h | 246 | hle/service/cfg/cfg.h |
diff --git a/src/core/hle/service/cecd/cecd.cpp b/src/core/hle/service/cecd/cecd.cpp index 515b344e6..eb04273db 100644 --- a/src/core/hle/service/cecd/cecd.cpp +++ b/src/core/hle/service/cecd/cecd.cpp | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | #include "common/logging/log.h" | 5 | #include "common/logging/log.h" |
| 6 | #include "core/hle/kernel/event.h" | 6 | #include "core/hle/kernel/event.h" |
| 7 | #include "core/hle/service/cecd/cecd.h" | 7 | #include "core/hle/service/cecd/cecd.h" |
| 8 | #include "core/hle/service/cecd/cecd_ndm.h" | ||
| 8 | #include "core/hle/service/cecd/cecd_s.h" | 9 | #include "core/hle/service/cecd/cecd_s.h" |
| 9 | #include "core/hle/service/cecd/cecd_u.h" | 10 | #include "core/hle/service/cecd/cecd_u.h" |
| 10 | #include "core/hle/service/service.h" | 11 | #include "core/hle/service/service.h" |
| @@ -43,12 +44,13 @@ void GetChangeStateEventHandle(Service::Interface* self) { | |||
| 43 | } | 44 | } |
| 44 | 45 | ||
| 45 | void Init() { | 46 | void Init() { |
| 46 | AddService(new CECD_S_Interface); | 47 | AddService(new CECD_NDM); |
| 47 | AddService(new CECD_U_Interface); | 48 | AddService(new CECD_S); |
| 49 | AddService(new CECD_U); | ||
| 48 | 50 | ||
| 49 | cecinfo_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD_U::cecinfo_event"); | 51 | cecinfo_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD::cecinfo_event"); |
| 50 | change_state_event = | 52 | change_state_event = |
| 51 | Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD_U::change_state_event"); | 53 | Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD::change_state_event"); |
| 52 | } | 54 | } |
| 53 | 55 | ||
| 54 | void Shutdown() { | 56 | void Shutdown() { |
diff --git a/src/core/hle/service/cecd/cecd_ndm.cpp b/src/core/hle/service/cecd/cecd_ndm.cpp new file mode 100644 index 000000000..7baf93750 --- /dev/null +++ b/src/core/hle/service/cecd/cecd_ndm.cpp | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | // Copyright 2016 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/cecd/cecd.h" | ||
| 6 | #include "core/hle/service/cecd/cecd_ndm.h" | ||
| 7 | |||
| 8 | namespace Service { | ||
| 9 | namespace CECD { | ||
| 10 | |||
| 11 | static const Interface::FunctionInfo FunctionTable[] = { | ||
| 12 | {0x00010000, nullptr, "Initialize"}, | ||
| 13 | {0x00020000, nullptr, "Deinitialize"}, | ||
| 14 | {0x00030000, nullptr, "ResumeDaemon"}, | ||
| 15 | {0x00040040, nullptr, "SuspendDaemon"}, | ||
| 16 | }; | ||
| 17 | |||
| 18 | CECD_NDM::CECD_NDM() { | ||
| 19 | Register(FunctionTable); | ||
| 20 | } | ||
| 21 | |||
| 22 | } // namespace CECD | ||
| 23 | } // namespace Service | ||
diff --git a/src/core/hle/service/cecd/cecd_ndm.h b/src/core/hle/service/cecd/cecd_ndm.h new file mode 100644 index 000000000..2e2e50ada --- /dev/null +++ b/src/core/hle/service/cecd/cecd_ndm.h | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | // Copyright 2016 Citra Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/service.h" | ||
| 8 | |||
| 9 | namespace Service { | ||
| 10 | namespace CECD { | ||
| 11 | |||
| 12 | class CECD_NDM : public Interface { | ||
| 13 | public: | ||
| 14 | CECD_NDM(); | ||
| 15 | |||
| 16 | std::string GetPortName() const override { | ||
| 17 | return "cecd:ndm"; | ||
| 18 | } | ||
| 19 | }; | ||
| 20 | |||
| 21 | } // namespace CECD | ||
| 22 | } // namespace Service | ||
diff --git a/src/core/hle/service/cecd/cecd_s.cpp b/src/core/hle/service/cecd/cecd_s.cpp index 7477b9320..eacda7d41 100644 --- a/src/core/hle/service/cecd/cecd_s.cpp +++ b/src/core/hle/service/cecd/cecd_s.cpp | |||
| @@ -2,16 +2,34 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "core/hle/service/cecd/cecd.h" | ||
| 5 | #include "core/hle/service/cecd/cecd_s.h" | 6 | #include "core/hle/service/cecd/cecd_s.h" |
| 6 | 7 | ||
| 7 | namespace Service { | 8 | namespace Service { |
| 8 | namespace CECD { | 9 | namespace CECD { |
| 9 | 10 | ||
| 10 | // Empty arrays are illegal -- commented out until an entry is added. | 11 | static const Interface::FunctionInfo FunctionTable[] = { |
| 11 | // const Interface::FunctionInfo FunctionTable[] = { }; | 12 | // cecd:u shared commands |
| 13 | {0x000100C2, nullptr, "OpenRawFile"}, | ||
| 14 | {0x00020042, nullptr, "ReadRawFile"}, | ||
| 15 | {0x00030104, nullptr, "ReadMessage"}, | ||
| 16 | {0x00040106, nullptr, "ReadMessageWithHMAC"}, | ||
| 17 | {0x00050042, nullptr, "WriteRawFile"}, | ||
| 18 | {0x00060104, nullptr, "WriteMessage"}, | ||
| 19 | {0x00070106, nullptr, "WriteMessageWithHMAC"}, | ||
| 20 | {0x00080102, nullptr, "Delete"}, | ||
| 21 | {0x000A00C4, nullptr, "GetSystemInfo"}, | ||
| 22 | {0x000B0040, nullptr, "RunCommand"}, | ||
| 23 | {0x000C0040, nullptr, "RunCommandAlt"}, | ||
| 24 | {0x000E0000, GetCecStateAbbreviated, "GetCecStateAbbreviated"}, | ||
| 25 | {0x000F0000, GetCecInfoEventHandle, "GetCecInfoEventHandle"}, | ||
| 26 | {0x00100000, GetChangeStateEventHandle, "GetChangeStateEventHandle"}, | ||
| 27 | {0x00110104, nullptr, "OpenAndWrite"}, | ||
| 28 | {0x00120104, nullptr, "OpenAndRead"}, | ||
| 29 | }; | ||
| 12 | 30 | ||
| 13 | CECD_S_Interface::CECD_S_Interface() { | 31 | CECD_S::CECD_S() { |
| 14 | // Register(FunctionTable); | 32 | Register(FunctionTable); |
| 15 | } | 33 | } |
| 16 | 34 | ||
| 17 | } // namespace CECD | 35 | } // namespace CECD |
diff --git a/src/core/hle/service/cecd/cecd_s.h b/src/core/hle/service/cecd/cecd_s.h index df5c01849..ab6c6789a 100644 --- a/src/core/hle/service/cecd/cecd_s.h +++ b/src/core/hle/service/cecd/cecd_s.h | |||
| @@ -9,9 +9,9 @@ | |||
| 9 | namespace Service { | 9 | namespace Service { |
| 10 | namespace CECD { | 10 | namespace CECD { |
| 11 | 11 | ||
| 12 | class CECD_S_Interface : public Interface { | 12 | class CECD_S : public Interface { |
| 13 | public: | 13 | public: |
| 14 | CECD_S_Interface(); | 14 | CECD_S(); |
| 15 | 15 | ||
| 16 | std::string GetPortName() const override { | 16 | std::string GetPortName() const override { |
| 17 | return "cecd:s"; | 17 | return "cecd:s"; |
diff --git a/src/core/hle/service/cecd/cecd_u.cpp b/src/core/hle/service/cecd/cecd_u.cpp index 7d98ba6e9..3ed864f0b 100644 --- a/src/core/hle/service/cecd/cecd_u.cpp +++ b/src/core/hle/service/cecd/cecd_u.cpp | |||
| @@ -9,6 +9,7 @@ namespace Service { | |||
| 9 | namespace CECD { | 9 | namespace CECD { |
| 10 | 10 | ||
| 11 | static const Interface::FunctionInfo FunctionTable[] = { | 11 | static const Interface::FunctionInfo FunctionTable[] = { |
| 12 | // cecd:u shared commands | ||
| 12 | {0x000100C2, nullptr, "OpenRawFile"}, | 13 | {0x000100C2, nullptr, "OpenRawFile"}, |
| 13 | {0x00020042, nullptr, "ReadRawFile"}, | 14 | {0x00020042, nullptr, "ReadRawFile"}, |
| 14 | {0x00030104, nullptr, "ReadMessage"}, | 15 | {0x00030104, nullptr, "ReadMessage"}, |
| @@ -27,7 +28,7 @@ static const Interface::FunctionInfo FunctionTable[] = { | |||
| 27 | {0x00120104, nullptr, "OpenAndRead"}, | 28 | {0x00120104, nullptr, "OpenAndRead"}, |
| 28 | }; | 29 | }; |
| 29 | 30 | ||
| 30 | CECD_U_Interface::CECD_U_Interface() { | 31 | CECD_U::CECD_U() { |
| 31 | Register(FunctionTable); | 32 | Register(FunctionTable); |
| 32 | } | 33 | } |
| 33 | 34 | ||
diff --git a/src/core/hle/service/cecd/cecd_u.h b/src/core/hle/service/cecd/cecd_u.h index 394030ffc..16e874ff5 100644 --- a/src/core/hle/service/cecd/cecd_u.h +++ b/src/core/hle/service/cecd/cecd_u.h | |||
| @@ -9,9 +9,9 @@ | |||
| 9 | namespace Service { | 9 | namespace Service { |
| 10 | namespace CECD { | 10 | namespace CECD { |
| 11 | 11 | ||
| 12 | class CECD_U_Interface : public Interface { | 12 | class CECD_U : public Interface { |
| 13 | public: | 13 | public: |
| 14 | CECD_U_Interface(); | 14 | CECD_U(); |
| 15 | 15 | ||
| 16 | std::string GetPortName() const override { | 16 | std::string GetPortName() const override { |
| 17 | return "cecd:u"; | 17 | return "cecd:u"; |