mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-12-26 03:13:15 -06:00
core: ldn: Address review comments part 2
This commit is contained in:
parent
8eb2c73381
commit
56115f7732
2 changed files with 360 additions and 397 deletions
|
@ -5,6 +5,8 @@
|
||||||
|
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/hle/service/ldn/ldn.h"
|
#include "core/hle/service/ldn/ldn.h"
|
||||||
|
#include "core/hle/service/ldn/ldn_results.h"
|
||||||
|
#include "core/hle/service/ldn/ldn_types.h"
|
||||||
#include "core/internal_network/network.h"
|
#include "core/internal_network/network.h"
|
||||||
#include "core/internal_network/network_interface.h"
|
#include "core/internal_network/network_interface.h"
|
||||||
|
|
||||||
|
@ -98,7 +100,10 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
IUserLocalCommunicationService::IUserLocalCommunicationService(Core::System& system_)
|
class IUserLocalCommunicationService final
|
||||||
|
: public ServiceFramework<IUserLocalCommunicationService> {
|
||||||
|
public:
|
||||||
|
explicit IUserLocalCommunicationService(Core::System& system_)
|
||||||
: ServiceFramework{system_, "IUserLocalCommunicationService", ServiceThreadType::CreateNew},
|
: ServiceFramework{system_, "IUserLocalCommunicationService", ServiceThreadType::CreateNew},
|
||||||
service_context{system, "IUserLocalCommunicationService"}, room_network{
|
service_context{system, "IUserLocalCommunicationService"}, room_network{
|
||||||
system_.GetRoomNetwork()} {
|
system_.GetRoomNetwork()} {
|
||||||
|
@ -140,26 +145,26 @@ IUserLocalCommunicationService::IUserLocalCommunicationService(Core::System& sys
|
||||||
|
|
||||||
state_change_event =
|
state_change_event =
|
||||||
service_context.CreateEvent("IUserLocalCommunicationService:StateChangeEvent");
|
service_context.CreateEvent("IUserLocalCommunicationService:StateChangeEvent");
|
||||||
}
|
}
|
||||||
|
|
||||||
IUserLocalCommunicationService::~IUserLocalCommunicationService() {
|
~IUserLocalCommunicationService() {
|
||||||
service_context.CloseEvent(state_change_event);
|
service_context.CloseEvent(state_change_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::OnEventFired() {
|
void OnEventFired() {
|
||||||
state_change_event->GetWritableEvent().Signal();
|
state_change_event->GetWritableEvent().Signal();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetState(Kernel::HLERequestContext& ctx) {
|
void GetState(Kernel::HLERequestContext& ctx) {
|
||||||
State state = State::Error;
|
State state = State::Error;
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called, state = {}", state);
|
LOG_WARNING(Service_LDN, "(STUBBED) called, state = {}", state);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
rb.PushEnum(state);
|
rb.PushEnum(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetNetworkInfo(Kernel::HLERequestContext& ctx) {
|
void GetNetworkInfo(Kernel::HLERequestContext& ctx) {
|
||||||
const auto write_buffer_size = ctx.GetWriteBufferSize();
|
const auto write_buffer_size = ctx.GetWriteBufferSize();
|
||||||
|
|
||||||
if (write_buffer_size != sizeof(NetworkInfo)) {
|
if (write_buffer_size != sizeof(NetworkInfo)) {
|
||||||
|
@ -184,9 +189,9 @@ void IUserLocalCommunicationService::GetNetworkInfo(Kernel::HLERequestContext& c
|
||||||
ctx.WriteBuffer<NetworkInfo>(network_info);
|
ctx.WriteBuffer<NetworkInfo>(network_info);
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(rc);
|
rb.Push(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetDisconnectReason(Kernel::HLERequestContext& ctx) {
|
void GetDisconnectReason(Kernel::HLERequestContext& ctx) {
|
||||||
const auto disconnect_reason = DisconnectReason::None;
|
const auto disconnect_reason = DisconnectReason::None;
|
||||||
|
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called, disconnect_reason={}", disconnect_reason);
|
LOG_WARNING(Service_LDN, "(STUBBED) called, disconnect_reason={}", disconnect_reason);
|
||||||
|
@ -194,11 +199,11 @@ void IUserLocalCommunicationService::GetDisconnectReason(Kernel::HLERequestConte
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
rb.PushEnum(disconnect_reason);
|
rb.PushEnum(disconnect_reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetSecurityParameter(Kernel::HLERequestContext& ctx) {
|
void GetSecurityParameter(Kernel::HLERequestContext& ctx) {
|
||||||
SecurityParameter security_parameter;
|
SecurityParameter security_parameter{};
|
||||||
NetworkInfo info;
|
NetworkInfo info{};
|
||||||
const Result rc = ResultSuccess;
|
const Result rc = ResultSuccess;
|
||||||
|
|
||||||
if (rc.IsError()) {
|
if (rc.IsError()) {
|
||||||
|
@ -217,11 +222,11 @@ void IUserLocalCommunicationService::GetSecurityParameter(Kernel::HLERequestCont
|
||||||
IPC::ResponseBuilder rb{ctx, 10};
|
IPC::ResponseBuilder rb{ctx, 10};
|
||||||
rb.Push(rc);
|
rb.Push(rc);
|
||||||
rb.PushRaw<SecurityParameter>(security_parameter);
|
rb.PushRaw<SecurityParameter>(security_parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetNetworkConfig(Kernel::HLERequestContext& ctx) {
|
void GetNetworkConfig(Kernel::HLERequestContext& ctx) {
|
||||||
NetworkConfig config;
|
NetworkConfig config{};
|
||||||
NetworkInfo info;
|
NetworkInfo info{};
|
||||||
const Result rc = ResultSuccess;
|
const Result rc = ResultSuccess;
|
||||||
|
|
||||||
if (rc.IsError()) {
|
if (rc.IsError()) {
|
||||||
|
@ -239,23 +244,23 @@ void IUserLocalCommunicationService::GetNetworkConfig(Kernel::HLERequestContext&
|
||||||
LOG_WARNING(Service_LDN,
|
LOG_WARNING(Service_LDN,
|
||||||
"(STUBBED) called, intent_id={}/{}, channel={}, node_count_max={}, "
|
"(STUBBED) called, intent_id={}/{}, channel={}, node_count_max={}, "
|
||||||
"local_communication_version={}",
|
"local_communication_version={}",
|
||||||
config.intent_id.local_communication_id, config.intent_id.scene_id, config.channel,
|
config.intent_id.local_communication_id, config.intent_id.scene_id,
|
||||||
config.node_count_max, config.local_communication_version);
|
config.channel, config.node_count_max, config.local_communication_version);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 10};
|
IPC::ResponseBuilder rb{ctx, 10};
|
||||||
rb.Push(rc);
|
rb.Push(rc);
|
||||||
rb.PushRaw<NetworkConfig>(config);
|
rb.PushRaw<NetworkConfig>(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::AttachStateChangeEvent(Kernel::HLERequestContext& ctx) {
|
void AttachStateChangeEvent(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_INFO(Service_LDN, "called");
|
LOG_INFO(Service_LDN, "called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2, 1};
|
IPC::ResponseBuilder rb{ctx, 2, 1};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
rb.PushCopyObjects(state_change_event->GetReadableEvent());
|
rb.PushCopyObjects(state_change_event->GetReadableEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx) {
|
void GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx) {
|
||||||
const std::size_t network_buffer_size = ctx.GetWriteBufferSize(0);
|
const std::size_t network_buffer_size = ctx.GetWriteBufferSize(0);
|
||||||
const std::size_t node_buffer_count = ctx.GetWriteBufferSize(1) / sizeof(NodeLatestUpdate);
|
const std::size_t node_buffer_count = ctx.GetWriteBufferSize(1) / sizeof(NodeLatestUpdate);
|
||||||
|
|
||||||
|
@ -286,17 +291,17 @@ void IUserLocalCommunicationService::GetNetworkInfoLatestUpdate(Kernel::HLEReque
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::Scan(Kernel::HLERequestContext& ctx) {
|
void Scan(Kernel::HLERequestContext& ctx) {
|
||||||
ScanImpl(ctx);
|
ScanImpl(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::ScanPrivate(Kernel::HLERequestContext& ctx) {
|
void ScanPrivate(Kernel::HLERequestContext& ctx) {
|
||||||
ScanImpl(ctx, true);
|
ScanImpl(ctx, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::ScanImpl(Kernel::HLERequestContext& ctx, bool is_private) {
|
void ScanImpl(Kernel::HLERequestContext& ctx, bool is_private = false) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto channel{rp.PopEnum<WifiChannel>()};
|
const auto channel{rp.PopEnum<WifiChannel>()};
|
||||||
const auto scan_filter{rp.PopRaw<ScanFilter>()};
|
const auto scan_filter{rp.PopRaw<ScanFilter>()};
|
||||||
|
@ -322,23 +327,23 @@ void IUserLocalCommunicationService::ScanImpl(Kernel::HLERequestContext& ctx, bo
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
rb.Push<u32>(count);
|
rb.Push<u32>(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::OpenAccessPoint(Kernel::HLERequestContext& ctx) {
|
void OpenAccessPoint(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::CloseAccessPoint(Kernel::HLERequestContext& ctx) {
|
void CloseAccessPoint(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::CreateNetwork(Kernel::HLERequestContext& ctx) {
|
void CreateNetwork(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
struct Parameters {
|
struct Parameters {
|
||||||
SecurityConfig security_config;
|
SecurityConfig security_config;
|
||||||
|
@ -348,13 +353,20 @@ void IUserLocalCommunicationService::CreateNetwork(Kernel::HLERequestContext& ct
|
||||||
};
|
};
|
||||||
static_assert(sizeof(Parameters) == 0x98, "Parameters has incorrect size.");
|
static_assert(sizeof(Parameters) == 0x98, "Parameters has incorrect size.");
|
||||||
|
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
const auto parameters{rp.PopRaw<Parameters>()};
|
||||||
|
|
||||||
|
LOG_WARNING(Service_LDN,
|
||||||
|
"(STUBBED) called, passphrase_size={}, security_mode={}, "
|
||||||
|
"local_communication_version={}",
|
||||||
|
parameters.security_config.passphrase_size,
|
||||||
|
parameters.security_config.security_mode,
|
||||||
|
parameters.network_config.local_communication_version);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::CreateNetworkPrivate(Kernel::HLERequestContext& ctx) {
|
void CreateNetworkPrivate(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
struct Parameters {
|
struct Parameters {
|
||||||
SecurityConfig security_config;
|
SecurityConfig security_config;
|
||||||
|
@ -366,59 +378,62 @@ void IUserLocalCommunicationService::CreateNetworkPrivate(Kernel::HLERequestCont
|
||||||
|
|
||||||
const auto parameters{rp.PopRaw<Parameters>()};
|
const auto parameters{rp.PopRaw<Parameters>()};
|
||||||
|
|
||||||
|
LOG_WARNING(Service_LDN,
|
||||||
|
"(STUBBED) called, passphrase_size={}, security_mode={}, "
|
||||||
|
"local_communication_version={}",
|
||||||
|
parameters.security_config.passphrase_size,
|
||||||
|
parameters.security_config.security_mode,
|
||||||
|
parameters.network_config.local_communication_version);
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DestroyNetwork(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::DestroyNetwork(Kernel::HLERequestContext& ctx) {
|
void SetAdvertiseData(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
|
||||||
rb.Push(ResultSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IUserLocalCommunicationService::SetAdvertiseData(Kernel::HLERequestContext& ctx) {
|
|
||||||
std::vector<u8> read_buffer = ctx.ReadBuffer();
|
std::vector<u8> read_buffer = ctx.ReadBuffer();
|
||||||
|
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called, size {}", read_buffer.size());
|
LOG_WARNING(Service_LDN, "(STUBBED) called, size {}", read_buffer.size());
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::SetStationAcceptPolicy(Kernel::HLERequestContext& ctx) {
|
void SetStationAcceptPolicy(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::AddAcceptFilterEntry(Kernel::HLERequestContext& ctx) {
|
void AddAcceptFilterEntry(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::OpenStation(Kernel::HLERequestContext& ctx) {
|
void OpenStation(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::CloseStation(Kernel::HLERequestContext& ctx) {
|
void CloseStation(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::Connect(Kernel::HLERequestContext& ctx) {
|
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
|
||||||
|
|
||||||
|
void Connect(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
struct Parameters {
|
struct Parameters {
|
||||||
SecurityConfig security_config;
|
SecurityConfig security_config;
|
||||||
|
@ -430,6 +445,13 @@ void IUserLocalCommunicationService::Connect(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
const auto parameters{rp.PopRaw<Parameters>()};
|
const auto parameters{rp.PopRaw<Parameters>()};
|
||||||
|
|
||||||
|
LOG_WARNING(Service_LDN,
|
||||||
|
"(STUBBED) called, passphrase_size={}, security_mode={}, "
|
||||||
|
"local_communication_version={}",
|
||||||
|
parameters.security_config.passphrase_size,
|
||||||
|
parameters.security_config.security_mode,
|
||||||
|
parameters.local_communication_version);
|
||||||
|
|
||||||
const std::vector<u8> read_buffer = ctx.ReadBuffer();
|
const std::vector<u8> read_buffer = ctx.ReadBuffer();
|
||||||
NetworkInfo network_info{};
|
NetworkInfo network_info{};
|
||||||
|
|
||||||
|
@ -444,42 +466,42 @@ void IUserLocalCommunicationService::Connect(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::Disconnect(Kernel::HLERequestContext& ctx) {
|
void Disconnect(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
void IUserLocalCommunicationService::Initialize(Kernel::HLERequestContext& ctx) {
|
void Initialize(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
const auto rc = InitializeImpl(ctx);
|
const auto rc = InitializeImpl(ctx);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(rc);
|
rb.Push(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::Finalize(Kernel::HLERequestContext& ctx) {
|
void Finalize(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
is_initialized = false;
|
is_initialized = false;
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IUserLocalCommunicationService::Initialize2(Kernel::HLERequestContext& ctx) {
|
void Initialize2(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
LOG_WARNING(Service_LDN, "(STUBBED) called");
|
||||||
|
|
||||||
const auto rc = InitializeImpl(ctx);
|
const auto rc = InitializeImpl(ctx);
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(rc);
|
rb.Push(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result IUserLocalCommunicationService::InitializeImpl(Kernel::HLERequestContext& ctx) {
|
Result InitializeImpl(Kernel::HLERequestContext& ctx) {
|
||||||
const auto network_interface = Network::GetSelectedNetworkInterface();
|
const auto network_interface = Network::GetSelectedNetworkInterface();
|
||||||
if (!network_interface) {
|
if (!network_interface) {
|
||||||
LOG_ERROR(Service_LDN, "No network interface is set");
|
LOG_ERROR(Service_LDN, "No network interface is set");
|
||||||
|
@ -489,7 +511,14 @@ Result IUserLocalCommunicationService::InitializeImpl(Kernel::HLERequestContext&
|
||||||
is_initialized = true;
|
is_initialized = true;
|
||||||
// TODO (flTobi): Change this to ResultSuccess when LDN is fully implemented
|
// TODO (flTobi): Change this to ResultSuccess when LDN is fully implemented
|
||||||
return ResultAirplaneModeEnabled;
|
return ResultAirplaneModeEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KernelHelpers::ServiceContext service_context;
|
||||||
|
Kernel::KEvent* state_change_event;
|
||||||
|
Network::RoomNetwork& room_network;
|
||||||
|
|
||||||
|
bool is_initialized{};
|
||||||
|
};
|
||||||
|
|
||||||
class LDNS final : public ServiceFramework<LDNS> {
|
class LDNS final : public ServiceFramework<LDNS> {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
#include "core/hle/kernel/k_event.h"
|
#include "core/hle/kernel/k_event.h"
|
||||||
#include "core/hle/result.h"
|
#include "core/hle/result.h"
|
||||||
#include "core/hle/service/kernel_helpers.h"
|
#include "core/hle/service/kernel_helpers.h"
|
||||||
#include "core/hle/service/ldn/ldn_results.h"
|
|
||||||
#include "core/hle/service/ldn/ldn_types.h"
|
|
||||||
#include "core/hle/service/sm/sm.h"
|
#include "core/hle/service/sm/sm.h"
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
@ -24,68 +22,4 @@ namespace Service::LDN {
|
||||||
/// Registers all LDN services with the specified service manager.
|
/// Registers all LDN services with the specified service manager.
|
||||||
void InstallInterfaces(SM::ServiceManager& sm, Core::System& system);
|
void InstallInterfaces(SM::ServiceManager& sm, Core::System& system);
|
||||||
|
|
||||||
class IUserLocalCommunicationService final
|
|
||||||
: public ServiceFramework<IUserLocalCommunicationService> {
|
|
||||||
public:
|
|
||||||
explicit IUserLocalCommunicationService(Core::System& system_);
|
|
||||||
~IUserLocalCommunicationService() override;
|
|
||||||
|
|
||||||
void GetState(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void GetNetworkInfo(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void GetDisconnectReason(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void GetSecurityParameter(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void GetNetworkConfig(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void AttachStateChangeEvent(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Scan(Kernel::HLERequestContext& ctx);
|
|
||||||
void ScanPrivate(Kernel::HLERequestContext& ctx);
|
|
||||||
void ScanImpl(Kernel::HLERequestContext& ctx, bool is_private = false);
|
|
||||||
|
|
||||||
void OpenAccessPoint(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void CloseAccessPoint(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void CreateNetwork(Kernel::HLERequestContext& ctx);
|
|
||||||
void CreateNetworkPrivate(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void DestroyNetwork(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void SetAdvertiseData(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void SetStationAcceptPolicy(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void AddAcceptFilterEntry(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void OpenStation(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void CloseStation(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Disconnect(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Connect(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Initialize(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Finalize(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
void Initialize2(Kernel::HLERequestContext& ctx);
|
|
||||||
Result InitializeImpl(Kernel::HLERequestContext& ctx);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void OnEventFired();
|
|
||||||
|
|
||||||
KernelHelpers::ServiceContext service_context;
|
|
||||||
Kernel::KEvent* state_change_event;
|
|
||||||
Network::RoomNetwork& room_network;
|
|
||||||
|
|
||||||
bool is_initialized{};
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Service::LDN
|
} // namespace Service::LDN
|
||||||
|
|
Loading…
Reference in a new issue