feat(service/nsd): Implement missing nsd:u and nsd:a services

Adds implementations for missing nsd:u and nsd:a services
as documented in SwitchBrew. This includes:

- Defining necessary data structures (Url, SettingName, DeviceId, Fqdn,
  NasServiceSetting, NasServiceName, SaveData, TestParameter, DeleteMode,
  ImportMode) in nsd.cpp.
- Adding declarations for new service methods to nsd.h.
- Implementing basic stub logic for each new service method in nsd.cpp,
  including logging, returning default success/error codes, and handling
  output buffers where applicable.
- Implementing checks for nsd:a specific functions using a new
  IsNsdA() helper.
- Updating the copyright year in nsd.h.

This provides a complete interface for the nsd service, allowing
further development and reducing unknown service calls.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-05-17 17:25:43 +10:00
parent dc51851b67
commit 7a564e727a
3 changed files with 372 additions and 22 deletions

View File

@@ -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
#include "core/hle/service/server_manager.h"
@@ -12,6 +13,7 @@ namespace Service::Sockets {
void LoopProcess(Core::System& system) {
auto server_manager = std::make_unique<ServerManager>(system);
server_manager->RegisterNamedService("bsd:a", std::make_shared<BSD>(system, "bsd:a"));
server_manager->RegisterNamedService("bsd:s", std::make_shared<BSD>(system, "bsd:s"));
server_manager->RegisterNamedService("bsd:u", std::make_shared<BSD>(system, "bsd:u"));
server_manager->RegisterNamedService("bsdcfg", std::make_shared<BSDCFG>(system));