diff --git a/src/core/hle/service/nwm/nwm_inf.cpp b/src/core/hle/service/nwm/nwm_inf.cpp index aecc733d3..3c9a02fe7 100644 --- a/src/core/hle/service/nwm/nwm_inf.cpp +++ b/src/core/hle/service/nwm/nwm_inf.cpp @@ -12,19 +12,20 @@ SERIALIZE_EXPORT_IMPL(Service::NWM::NWM_INF) namespace Service::NWM { void NWM_INF::RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); // TODO(PTR) Update implementation to cover differences between NWM_INF and NWM_UDS // adding in extra context value for transition from INF to UDS - u32* ctx_data = ctx.CommandBuffer(); std::array cmd_buf; int i; for (i = 0; i < 15; i++) { - cmd_buf[i] = ctx_data[i]; + cmd_buf[i] = rp.Pop(); } + rp.Pop(); cmd_buf[15] = 0; // dummy wlan_comm_id cmd_buf[16] = 0; // dummy id for (i = 17; i <= 20; i++) { - cmd_buf[i] = ctx_data[i - 1]; + cmd_buf[i] = rp.Pop(); } std::shared_ptr thread = ctx.ClientThread(); @@ -36,6 +37,13 @@ void NWM_INF::RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx) { auto nwm_uds = Core::System::GetInstance().ServiceManager().GetService("nwm::UDS"); nwm_uds->HandleSyncRequest(context); + + IPC::RequestParser rp2(context); + + IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); + rb.Push(rp2.Pop()); + rb.PushMappedBuffer(rp2.PopMappedBuffer()); + } NWM_INF::NWM_INF() : ServiceFramework("nwm::INF") {