diff options
-rw-r--r-- | src/core/hle/service/nifm/nifm.cpp | 44 | ||||
-rw-r--r-- | src/core/hle/service/nifm/nifm.h | 5 |
2 files changed, 45 insertions, 4 deletions
diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 38490ab33..b1addb1fb 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -419,6 +419,24 @@ void IGeneralService::GetCurrentNetworkProfile(HLERequestContext& ctx) { rb.Push(ResultSuccess); } +void IGeneralService::EnumerateNetworkInterfaces(HLERequestContext& ctx) { + // Return empty list since network interface enumeration is not yet implemented + LOG_DEBUG(Service_NIFM, "Network interface enumeration requested"); + + // Build response with just success status + IPC::ResponseBuilder rb{ctx, 2}; + rb.Push(ResultSuccess); +} + +void IGeneralService::EnumerateNetworkProfiles(HLERequestContext& ctx) { + // Return empty list since network profile enumeration is not yet implemented + LOG_DEBUG(Service_NIFM, "Network profile enumeration requested"); + + // Build response with just success status + IPC::ResponseBuilder rb{ctx, 2}; + rb.Push(ResultSuccess); +} + void IGeneralService::RemoveNetworkProfile(HLERequestContext& ctx) { LOG_WARNING(Service_NIFM, "(STUBBED) called"); @@ -565,6 +583,24 @@ void IGeneralService::IsAnyForegroundRequestAccepted(HLERequestContext& ctx) { rb.Push<u8>(is_accepted); } +void IGeneralService::ConfirmSystemAvailability(HLERequestContext& ctx) { + // Verify system network availability + LOG_DEBUG(Service_NIFM, "Confirming system network availability"); + + // Return success to indicate system is available + IPC::ResponseBuilder response{ctx, 2}; + response.Push(ResultSuccess); +} + +void IGeneralService::SetBackgroundRequestEnabled(HLERequestContext& ctx) { + // Enable background network requests + LOG_DEBUG(Service_NIFM, "Setting background network requests enabled"); + + // Build success response + IPC::ResponseBuilder response{ctx, 2}; + response.Push(ResultSuccess); +} + IGeneralService::IGeneralService(Core::System& system_) : ServiceFramework{system_, "IGeneralService"}, network{system_.GetRoomNetwork()} { // clang-format off @@ -573,8 +609,8 @@ IGeneralService::IGeneralService(Core::System& system_) {2, &IGeneralService::CreateScanRequest, "CreateScanRequest"}, {4, &IGeneralService::CreateRequest, "CreateRequest"}, {5, &IGeneralService::GetCurrentNetworkProfile, "GetCurrentNetworkProfile"}, - {6, nullptr, "EnumerateNetworkInterfaces"}, - {7, nullptr, "EnumerateNetworkProfiles"}, + {6, &IGeneralService::EnumerateNetworkInterfaces, "EnumerateNetworkInterfaces"}, + {7, &IGeneralService::EnumerateNetworkProfiles, "EnumerateNetworkProfiles"}, {8, nullptr, "GetNetworkProfile"}, {9, nullptr, "SetNetworkProfile"}, {10, &IGeneralService::RemoveNetworkProfile, "RemoveNetworkProfile"}, @@ -600,8 +636,8 @@ IGeneralService::IGeneralService(Core::System& system_) {30, nullptr, "SetEthernetCommunicationEnabledForTest"}, {31, nullptr, "GetTelemetorySystemEventReadableHandle"}, {32, nullptr, "GetTelemetryInfo"}, - {33, nullptr, "ConfirmSystemAvailability"}, - {34, nullptr, "SetBackgroundRequestEnabled"}, + {33, &IGeneralService::ConfirmSystemAvailability, "ConfirmSystemAvailability"}, + {34, &IGeneralService::SetBackgroundRequestEnabled, "SetBackgroundRequestEnabled"}, {35, nullptr, "GetScanData"}, {36, nullptr, "GetCurrentAccessPoint"}, {37, nullptr, "Shutdown"}, diff --git a/src/core/hle/service/nifm/nifm.h b/src/core/hle/service/nifm/nifm.h index b74b66438..655dd9acf 100644 --- a/src/core/hle/service/nifm/nifm.h +++ b/src/core/hle/service/nifm/nifm.h @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -27,6 +28,8 @@ private: void CreateScanRequest(HLERequestContext& ctx); void CreateRequest(HLERequestContext& ctx); void GetCurrentNetworkProfile(HLERequestContext& ctx); + void EnumerateNetworkInterfaces(HLERequestContext& ctx); + void EnumerateNetworkProfiles(HLERequestContext& ctx); void RemoveNetworkProfile(HLERequestContext& ctx); void GetCurrentIpAddress(HLERequestContext& ctx); void CreateTemporaryNetworkProfile(HLERequestContext& ctx); @@ -36,6 +39,8 @@ private: void IsEthernetCommunicationEnabled(HLERequestContext& ctx); void IsAnyInternetRequestAccepted(HLERequestContext& ctx); void IsAnyForegroundRequestAccepted(HLERequestContext& ctx); + void ConfirmSystemAvailability(HLERequestContext& ctx); + void SetBackgroundRequestEnabled(HLERequestContext& ctx); Network::RoomNetwork& network; }; |