diff options
Diffstat (limited to 'src/core')
| -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              hle/service/cam/cam_s.cpp              hle/service/cam/cam_u.cpp              hle/service/cecd/cecd.cpp +            hle/service/cecd/cecd_ndm.cpp              hle/service/cecd/cecd_s.cpp              hle/service/cecd/cecd_u.cpp              hle/service/cfg/cfg.cpp @@ -239,6 +240,7 @@ set(HEADERS              hle/service/cam/cam_s.h              hle/service/cam/cam_u.h              hle/service/cecd/cecd.h +            hle/service/cecd/cecd_ndm.h              hle/service/cecd/cecd_s.h              hle/service/cecd/cecd_u.h              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 @@  #include "common/logging/log.h"  #include "core/hle/kernel/event.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_u.h"  #include "core/hle/service/service.h" @@ -43,12 +44,13 @@ void GetChangeStateEventHandle(Service::Interface* self) {  }  void Init() { -    AddService(new CECD_S_Interface); -    AddService(new CECD_U_Interface); +    AddService(new CECD_NDM); +    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 = -        Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD_U::change_state_event"); +        Kernel::Event::Create(Kernel::ResetType::OneShot, "CECD::change_state_event");  }  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 @@ +// 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 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 @@ +// 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 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 @@  // 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_s.h"  namespace Service {  namespace CECD { -// Empty arrays are illegal -- commented out until an entry is added. -// const Interface::FunctionInfo FunctionTable[] = { }; +static 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() { -    // Register(FunctionTable); +CECD_S::CECD_S() { +    Register(FunctionTable);  }  } // 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 @@  namespace Service {  namespace CECD { -class CECD_S_Interface : public Interface { +class CECD_S : public Interface {  public: -    CECD_S_Interface(); +    CECD_S();      std::string GetPortName() const override {          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 {  namespace CECD {  static const Interface::FunctionInfo FunctionTable[] = { +    // cecd:u shared commands      {0x000100C2, nullptr, "OpenRawFile"},      {0x00020042, nullptr, "ReadRawFile"},      {0x00030104, nullptr, "ReadMessage"}, @@ -27,7 +28,7 @@ static const Interface::FunctionInfo FunctionTable[] = {      {0x00120104, nullptr, "OpenAndRead"},  }; -CECD_U_Interface::CECD_U_Interface() { +CECD_U::CECD_U() {      Register(FunctionTable);  } 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 @@  namespace Service {  namespace CECD { -class CECD_U_Interface : public Interface { +class CECD_U : public Interface {  public: -    CECD_U_Interface(); +    CECD_U();      std::string GetPortName() const override {          return "cecd:u"; | 
