Squashed commit of the following:

commit aeb1e224f3
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 13:18:17 2024 +0200

    Fixed member reference

commit c3b1beae1c
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 13:11:30 2024 +0200

    Readded NWM_UDS header

commit 6b03ca58a2
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 12:44:40 2024 +0200

    Updated include statements

commit 36c4adf431
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 00:58:25 2024 +0200

    Potential member reference fix

commit 6d28737856
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 00:48:51 2024 +0200

    Fixed missing void return type

commit 14eb312678
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Fri Aug 23 00:14:41 2024 +0200

    Using correct way to call UDS service

commit 2acc2a35a9
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Thu Aug 22 22:39:15 2024 +0200

    Updated API

commit d204bfa05c
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Thu Aug 22 22:38:49 2024 +0200

    Initial NWM_INF::RecvBeaconBroadcastData implementation

commit 01baadf7a4
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Thu Aug 22 19:23:17 2024 +0200

    Included member type

commit 36f416469f
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Thu Aug 22 19:06:52 2024 +0200

    Coding style fixes

commit 4e73a1d057
Author: PTRCoder <pj.de.bruijne@gmail.com>
Date:   Thu Aug 22 19:02:37 2024 +0200

    Starting tests
This commit is contained in:
PTRCoder 2024-08-24 19:58:48 +02:00
parent 8af024bddb
commit 8a8552bef9
6 changed files with 57 additions and 3 deletions

View File

@ -180,6 +180,24 @@ void Module::Interface::GetStatus(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_AC, "(STUBBED) called");
}
void Module::Interface::ScanAPs(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx);
const u32 arg1 = rp.Pop<u32>();
LOG_WARNING(Service_AC, "val1: {}", arg1);
const u32 arg2 = rp.Pop<u32>();
LOG_WARNING(Service_AC, "val2: {}", arg2);
const u32 arg3 = rp.Pop<u32>();
LOG_WARNING(Service_AC, "val3: {}", arg3);
const u32 arg4 = rp.Pop<u32>();
LOG_WARNING(Service_AC, "val4: {}", arg4);
const u32 arg5 = rp.Pop<u32>();
LOG_WARNING(Service_AC, "val5: {}", arg5);
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
rb.Push(ResultUnknown);
LOG_WARNING(Service_AC, "(STUBBED) called");
}
void Module::Interface::GetInfraPriority(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp(ctx);
[[maybe_unused]] const std::vector<u8>& ac_config = rp.PopStaticBuffer();

View File

@ -122,6 +122,19 @@ public:
*/
void GetConnectingInfraPriority(Kernel::HLERequestContext& ctx);
/**
* AC::ScanAPs service function
* Inputs:
* 1 : Size
* 2-3 : ProcessID
* 64: (Size << 14) | 2
* 65: Pointer to output structure
* Outputs:
* 1 : Result of function, 0 on success, otherwise error code
* 2 : ?
*/
void ScanAPs(Kernel::HLERequestContext& ctx);
/**
* AC::GetInfraPriority service function
* Inputs:

View File

@ -23,7 +23,7 @@ AC_I::AC_I(std::shared_ptr<Module> ac) : Module::Interface(std::move(ac), "ac:i"
{0x000F, &AC_I::GetConnectingInfraPriority, "GetConnectingInfraPriority"},
{0x0010, nullptr, "GetCurrentNZoneInfo"},
{0x0011, nullptr, "GetNZoneApNumService"},
{0x001D, nullptr, "ScanAPs"},
{0x001D, &AC_I::ScanAPs, "ScanAPs"},
{0x0024, nullptr, "AddDenyApType"},
{0x0027, &AC_I::GetInfraPriority, "GetInfraPriority"},
{0x002C, &AC_I::SetFromApplication, "SetFromApplication"},

View File

@ -23,7 +23,7 @@ AC_U::AC_U(std::shared_ptr<Module> ac) : Module::Interface(std::move(ac), "ac:u"
{0x000F, &AC_U::GetConnectingInfraPriority, "GetConnectingInfraPriority"},
{0x0010, nullptr, "GetCurrentNZoneInfo"},
{0x0011, nullptr, "GetNZoneApNumService"},
{0x001D, nullptr, "ScanAPs"},
{0x001D, &AC_U::ScanAPs, "ScanAPs"},
{0x0024, nullptr, "AddDenyApType"},
{0x0027, &AC_U::GetInfraPriority, "GetInfraPriority"},
{0x002C, &AC_U::SetFromApplication, "SetFromApplication"},

View File

@ -3,16 +3,24 @@
// Refer to the license.txt file included.
#include "common/archives.h"
#include "core/core.h"
#include "core/hle/service/nwm/nwm_inf.h"
#include "core/hle/service/nwm/nwm_uds.h"
SERIALIZE_EXPORT_IMPL(Service::NWM::NWM_INF)
namespace Service::NWM {
void NWM_INF::RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx) {
// TODO(PTR) Update implementation to cover differences between NWM_INF and NWM_UDS
auto nwm_uds = Core::System::GetInstance().ServiceManager().GetService<Service::NWM::NWM_UDS>("nwm::UDS");
nwm_uds->HandleSyncRequest(ctx);
}
NWM_INF::NWM_INF() : ServiceFramework("nwm::INF") {
static const FunctionInfo functions[] = {
// clang-format off
{0x0006, nullptr, "RecvBeaconBroadcastData"},
{0x0006, &NWM_INF::RecvBeaconBroadcastData, "RecvBeaconBroadcastData"},
{0x0007, nullptr, "ConnectToEncryptedAP"},
{0x0008, nullptr, "ConnectToAP"},
// clang-format on

View File

@ -12,6 +12,21 @@ class NWM_INF final : public ServiceFramework<NWM_INF> {
public:
NWM_INF();
/**
* NWM::RecvBeaconBroadcastData service function
* Inputs:
* 1 : Output buffer max size
* 2-14 : Input ScanInputStruct.
* 15 : u32, unknown
* 16 : Value 0x0
* 17 : Input handle
* 18 : (Size<<4) | 12
* 19 : Output BeaconDataReply buffer ptr
* Outputs:
* 1 : Result of function, 0 on success, otherwise error code
*/
void RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx);
private:
SERVICE_SERIALIZATION_SIMPLE
};