From 50dadc33e3bc60ac7a87bd822e147fef9e052a71 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 27 Jul 2018 15:12:04 -0400 Subject: [PATCH] service/nfc: Implement Create[x]Interface functions These simply return the respective interface. --- src/core/hle/service/nfc/nfc.cpp | 47 +++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp index c09d198ba..8fec97db8 100644 --- a/src/core/hle/service/nfc/nfc.cpp +++ b/src/core/hle/service/nfc/nfc.cpp @@ -4,6 +4,9 @@ #include +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/kernel/hle_ipc.h" #include "core/hle/service/nfc/nfc.h" #include "core/hle/service/service.h" #include "core/hle/service/sm/sm.h" @@ -30,12 +33,21 @@ public: explicit NFC_AM() : ServiceFramework{"nfc:am"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateAmInterface"}, + {0, &NFC_AM::CreateAmInterface, "CreateAmInterface"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void CreateAmInterface(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_NFC, "called"); + } }; class MFIUser final : public ServiceFramework { @@ -69,12 +81,21 @@ public: explicit NFC_MF_U() : ServiceFramework{"nfc:mf:u"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateUserInterface"}, + {0, &NFC_MF_U::CreateUserInterface, "CreateUserInterface"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void CreateUserInterface(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_NFC, "called"); + } }; class IUser final : public ServiceFramework { @@ -116,12 +137,21 @@ public: explicit NFC_U() : ServiceFramework{"nfc:u"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateUserInterface"}, + {0, &NFC_U::CreateUserInterface, "CreateUserInterface"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void CreateUserInterface(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_NFC, "called"); + } }; class ISystem final : public ServiceFramework { @@ -165,12 +195,21 @@ public: explicit NFC_SYS() : ServiceFramework{"nfc:sys"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateSystemInterface"}, + {0, &NFC_SYS::CreateSystemInterface, "CreateSystemInterface"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void CreateSystemInterface(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_NFC, "called"); + } }; void InstallInterfaces(SM::ServiceManager& sm) {