diff options
author | bunnei <bunneidev@gmail.com> | 2017-10-10 23:32:14 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2017-10-10 23:32:14 +0200 |
commit | 0906de9a14b735d1d409290ca050eb7d2c2d3d84 (patch) | |
tree | 79bb57d3a4dc4ca377e7a62744c3941de29e785b /src/core/hle/service/nfc | |
parent | Merge remote-tracking branch 'upstream/master' into nx (diff) | |
download | yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar.gz yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar.bz2 yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar.lz yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar.xz yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.tar.zst yuzu-0906de9a14b735d1d409290ca050eb7d2c2d3d84.zip |
Diffstat (limited to 'src/core/hle/service/nfc')
-rw-r--r-- | src/core/hle/service/nfc/nfc.cpp | 145 | ||||
-rw-r--r-- | src/core/hle/service/nfc/nfc.h | 153 | ||||
-rw-r--r-- | src/core/hle/service/nfc/nfc_m.cpp | 47 | ||||
-rw-r--r-- | src/core/hle/service/nfc/nfc_m.h | 22 | ||||
-rw-r--r-- | src/core/hle/service/nfc/nfc_u.cpp | 44 | ||||
-rw-r--r-- | src/core/hle/service/nfc/nfc_u.h | 22 |
6 files changed, 0 insertions, 433 deletions
diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp deleted file mode 100644 index cb09ed0b7..000000000 --- a/src/core/hle/service/nfc/nfc.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/ipc.h" -#include "core/hle/kernel/event.h" -#include "core/hle/kernel/handle_table.h" -#include "core/hle/service/nfc/nfc.h" -#include "core/hle/service/nfc/nfc_m.h" -#include "core/hle/service/nfc/nfc_u.h" - -namespace Service { -namespace NFC { - -static Kernel::SharedPtr<Kernel::Event> tag_in_range_event; -static Kernel::SharedPtr<Kernel::Event> tag_out_of_range_event; -static TagState nfc_tag_state = TagState::NotInitialized; -static CommunicationStatus nfc_status = CommunicationStatus::NfcInitialized; - -void Initialize(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - u8 param = static_cast<u8>(cmd_buff[1] & 0xFF); - - nfc_tag_state = TagState::NotScanning; - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called, param=%u", param); -} - -void Shutdown(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - u8 param = static_cast<u8>(cmd_buff[1] & 0xFF); - nfc_tag_state = TagState::NotInitialized; - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called, param=%u", param); -} - -void StartCommunication(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void StopCommunication(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void StartTagScanning(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - nfc_tag_state = TagState::TagInRange; - tag_in_range_event->Signal(); - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void StopTagScanning(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - nfc_tag_state = TagState::NotScanning; - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void LoadAmiiboData(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - nfc_tag_state = TagState::TagDataLoaded; - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void ResetTagScanState(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - nfc_tag_state = TagState::NotScanning; - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void GetTagInRangeEvent(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[0] = IPC::MakeHeader(0xB, 1, 2); - cmd_buff[1] = RESULT_SUCCESS.raw; - cmd_buff[2] = IPC::CopyHandleDesc(); - cmd_buff[3] = Kernel::g_handle_table.Create(tag_in_range_event).Unwrap(); - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void GetTagOutOfRangeEvent(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[0] = IPC::MakeHeader(0xC, 1, 2); - cmd_buff[1] = RESULT_SUCCESS.raw; - cmd_buff[2] = IPC::CopyHandleDesc(); - cmd_buff[3] = Kernel::g_handle_table.Create(tag_out_of_range_event).Unwrap(); - LOG_WARNING(Service_NFC, "(STUBBED) called"); -} - -void GetTagState(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - cmd_buff[2] = static_cast<u8>(nfc_tag_state); - LOG_DEBUG(Service_NFC, "(STUBBED) called"); -} - -void CommunicationGetStatus(Interface* self) { - u32* cmd_buff = Kernel::GetCommandBuffer(); - - cmd_buff[1] = RESULT_SUCCESS.raw; // No error - cmd_buff[2] = static_cast<u8>(nfc_status); - LOG_DEBUG(Service_NFC, "(STUBBED) called"); -} - -void Init() { - AddService(new NFC_M()); - AddService(new NFC_U()); - - tag_in_range_event = - Kernel::Event::Create(Kernel::ResetType::OneShot, "NFC::tag_in_range_event"); - tag_out_of_range_event = - Kernel::Event::Create(Kernel::ResetType::OneShot, "NFC::tag_out_range_event"); - nfc_tag_state = TagState::NotInitialized; -} - -void Shutdown() { - tag_in_range_event = nullptr; - tag_out_of_range_event = nullptr; -} - -} // namespace NFC -} // namespace Service diff --git a/src/core/hle/service/nfc/nfc.h b/src/core/hle/service/nfc/nfc.h deleted file mode 100644 index a013bdae7..000000000 --- a/src/core/hle/service/nfc/nfc.h +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "common/common_types.h" - -namespace Service { - -class Interface; - -namespace NFC { - -enum class TagState : u8 { - NotInitialized = 0, - NotScanning = 1, - Scanning = 2, - TagInRange = 3, - TagOutOfRange = 4, - TagDataLoaded = 5, -}; - -enum class CommunicationStatus : u8 { - AttemptInitialize = 1, - NfcInitialized = 2, -}; - -/** - * NFC::Initialize service function - * Inputs: - * 0 : Header code [0x00010040] - * 1 : (u8) unknown parameter. Can be either value 0x1 or 0x2 - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void Initialize(Interface* self); - -/** - * NFC::Shutdown service function - * Inputs: - * 0 : Header code [0x00020040] - * 1 : (u8) unknown parameter - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void Shutdown(Interface* self); - -/** - * NFC::StartCommunication service function - * Inputs: - * 0 : Header code [0x00030000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void StartCommunication(Interface* self); - -/** - * NFC::StopCommunication service function - * Inputs: - * 0 : Header code [0x00040000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void StopCommunication(Interface* self); - -/** - * NFC::StartTagScanning service function - * Inputs: - * 0 : Header code [0x00050040] - * 1 : (u16) unknown. This is normally 0x0 - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void StartTagScanning(Interface* self); - -/** - * NFC::StopTagScanning service function - * Inputs: - * 0 : Header code [0x00060000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void StopTagScanning(Interface* self); - -/** - * NFC::LoadAmiiboData service function - * Inputs: - * 0 : Header code [0x00070000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void LoadAmiiboData(Interface* self); - -/** - * NFC::ResetTagScanState service function - * Inputs: - * 0 : Header code [0x00080000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - */ -void ResetTagScanState(Interface* self); - -/** - * NFC::GetTagInRangeEvent service function - * Inputs: - * 0 : Header code [0x000B0000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - * 2 : Copy handle descriptor - * 3 : Event Handle - */ -void GetTagInRangeEvent(Interface* self); - -/** - * NFC::GetTagOutOfRangeEvent service function - * Inputs: - * 0 : Header code [0x000C0000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - * 2 : Copy handle descriptor - * 3 : Event Handle - */ -void GetTagOutOfRangeEvent(Interface* self); - -/** - * NFC::GetTagState service function - * Inputs: - * 0 : Header code [0x000D0000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - * 2 : (u8) Tag state - */ -void GetTagState(Interface* self); - -/** - * NFC::CommunicationGetStatus service function - * Inputs: - * 0 : Header code [0x000F0000] - * Outputs: - * 1 : Result of function, 0 on success, otherwise error code - * 2 : (u8) Communication state - */ -void CommunicationGetStatus(Interface* self); - -/// Initialize all NFC services. -void Init(); - -/// Shutdown all NFC services. -void Shutdown(); - -} // namespace NFC -} // namespace Service diff --git a/src/core/hle/service/nfc/nfc_m.cpp b/src/core/hle/service/nfc/nfc_m.cpp deleted file mode 100644 index ebe637650..000000000 --- a/src/core/hle/service/nfc/nfc_m.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/service/nfc/nfc.h" -#include "core/hle/service/nfc/nfc_m.h" - -namespace Service { -namespace NFC { - -const Interface::FunctionInfo FunctionTable[] = { - // clang-format off - // nfc:u shared commands - {0x00010040, Initialize, "Initialize"}, - {0x00020040, Shutdown, "Shutdown"}, - {0x00030000, StartCommunication, "StartCommunication"}, - {0x00040000, StopCommunication, "StopCommunication"}, - {0x00050040, StartTagScanning, "StartTagScanning"}, - {0x00060000, StopTagScanning, "StopTagScanning"}, - {0x00070000, LoadAmiiboData, "LoadAmiiboData"}, - {0x00080000, ResetTagScanState, "ResetTagScanState"}, - {0x00090002, nullptr, "UpdateStoredAmiiboData"}, - {0x000B0000, GetTagInRangeEvent, "GetTagInRangeEvent"}, - {0x000C0000, GetTagOutOfRangeEvent, "GetTagOutOfRangeEvent"}, - {0x000D0000, GetTagState, "GetTagState"}, - {0x000F0000, CommunicationGetStatus, "CommunicationGetStatus"}, - {0x00100000, nullptr, "GetTagInfo2"}, - {0x00110000, nullptr, "GetTagInfo"}, - {0x00120000, nullptr, "CommunicationGetResult"}, - {0x00130040, nullptr, "OpenAppData"}, - {0x00140384, nullptr, "InitializeWriteAppData"}, - {0x00150040, nullptr, "ReadAppData"}, - {0x00160242, nullptr, "WriteAppData"}, - {0x00170000, nullptr, "GetAmiiboSettings"}, - {0x00180000, nullptr, "GetAmiiboConfig"}, - {0x00190000, nullptr, "GetAppDataInitStruct"}, - // nfc:m - {0x04040A40, nullptr, "SetAmiiboSettings"} - // clang-format on -}; - -NFC_M::NFC_M() { - Register(FunctionTable); -} - -} // namespace NFC -} // namespace Service diff --git a/src/core/hle/service/nfc/nfc_m.h b/src/core/hle/service/nfc/nfc_m.h deleted file mode 100644 index fae75535b..000000000 --- a/src/core/hle/service/nfc/nfc_m.h +++ /dev/null @@ -1,22 +0,0 @@ -// 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 NFC { - -class NFC_M final : public Interface { -public: - NFC_M(); - - std::string GetPortName() const override { - return "nfc:m"; - } -}; - -} // namespace NFC -} // namespace Service diff --git a/src/core/hle/service/nfc/nfc_u.cpp b/src/core/hle/service/nfc/nfc_u.cpp deleted file mode 100644 index 5a40c7874..000000000 --- a/src/core/hle/service/nfc/nfc_u.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/hle/service/nfc/nfc.h" -#include "core/hle/service/nfc/nfc_u.h" - -namespace Service { -namespace NFC { - -const Interface::FunctionInfo FunctionTable[] = { - // clang-format off - {0x00010040, Initialize, "Initialize"}, - {0x00020040, Shutdown, "Shutdown"}, - {0x00030000, StartCommunication, "StartCommunication"}, - {0x00040000, StopCommunication, "StopCommunication"}, - {0x00050040, StartTagScanning, "StartTagScanning"}, - {0x00060000, StopTagScanning, "StopTagScanning"}, - {0x00070000, LoadAmiiboData, "LoadAmiiboData"}, - {0x00080000, ResetTagScanState, "ResetTagScanState"}, - {0x00090002, nullptr, "UpdateStoredAmiiboData"}, - {0x000B0000, GetTagInRangeEvent, "GetTagInRangeEvent"}, - {0x000C0000, GetTagOutOfRangeEvent, "GetTagOutOfRangeEvent"}, - {0x000D0000, GetTagState, "GetTagState"}, - {0x000F0000, CommunicationGetStatus, "CommunicationGetStatus"}, - {0x00100000, nullptr, "GetTagInfo2"}, - {0x00110000, nullptr, "GetTagInfo"}, - {0x00120000, nullptr, "CommunicationGetResult"}, - {0x00130040, nullptr, "OpenAppData"}, - {0x00140384, nullptr, "InitializeWriteAppData"}, - {0x00150040, nullptr, "ReadAppData"}, - {0x00160242, nullptr, "WriteAppData"}, - {0x00170000, nullptr, "GetAmiiboSettings"}, - {0x00180000, nullptr, "GetAmiiboConfig"}, - {0x00190000, nullptr, "GetAppDataInitStruct"}, - // clang-format on -}; - -NFC_U::NFC_U() { - Register(FunctionTable); -} - -} // namespace NFC -} // namespace Service diff --git a/src/core/hle/service/nfc/nfc_u.h b/src/core/hle/service/nfc/nfc_u.h deleted file mode 100644 index eb7507314..000000000 --- a/src/core/hle/service/nfc/nfc_u.h +++ /dev/null @@ -1,22 +0,0 @@ -// 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 NFC { - -class NFC_U final : public Interface { -public: - NFC_U(); - - std::string GetPortName() const override { - return "nfc:u"; - } -}; - -} // namespace NFC -} // namespace Service |