mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-26 00:07:07 +02:00
AMV + WLAN stubs
This commit is contained in:
parent
17dccfe052
commit
cd284033e3
1 changed files with 96 additions and 0 deletions
|
|
@ -2,6 +2,9 @@
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include "core/hle/result.h"
|
||||||
|
#include "core/hle/service/cmif_serialization.h"
|
||||||
|
#include "core/hle/service/cmif_types.h"
|
||||||
#include "core/hle/service/ipc_helpers.h"
|
#include "core/hle/service/ipc_helpers.h"
|
||||||
#include "core/hle/service/ulsf/ulsf.h"
|
#include "core/hle/service/ulsf/ulsf.h"
|
||||||
#include "core/hle/service/server_manager.h"
|
#include "core/hle/service/server_manager.h"
|
||||||
|
|
@ -30,11 +33,104 @@ void ULSF_U::GetVersion(HLERequestContext& ctx) {
|
||||||
rb.PushRaw(version);
|
rb.PushRaw(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class MenuMessage : u32 {
|
||||||
|
Invalid,
|
||||||
|
HomeRequest,
|
||||||
|
SdCardEjected,
|
||||||
|
GameCardMountFailure,
|
||||||
|
PreviousLaunchFailure,
|
||||||
|
ChosenHomebrew,
|
||||||
|
FinishedSleep,
|
||||||
|
ApplicationRecordsChanged,
|
||||||
|
ApplicationVerifyProgress,
|
||||||
|
ApplicationVerifyResult
|
||||||
|
};
|
||||||
|
struct MenuMessageContext {
|
||||||
|
MenuMessage msg;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
Result mount_rc;
|
||||||
|
} gc_mount_failure;
|
||||||
|
struct {
|
||||||
|
char nro_path[0x301];
|
||||||
|
} chosen_hb;
|
||||||
|
struct {
|
||||||
|
bool records_added_or_deleted;
|
||||||
|
} app_records_changed;
|
||||||
|
struct {
|
||||||
|
u64 app_id;
|
||||||
|
u64 done;
|
||||||
|
u64 total;
|
||||||
|
} app_verify_progress;
|
||||||
|
struct {
|
||||||
|
u64 app_id;
|
||||||
|
Result rc;
|
||||||
|
Result detail_rc;
|
||||||
|
} app_verify_rc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class ULSF_P final : public ServiceFramework<ULSF_P> {
|
||||||
|
public:
|
||||||
|
explicit ULSF_P(Core::System& system_) : ServiceFramework{system_, "ulsf:p"} {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{0, C<&ULSF_P::Initialize>, "Initialize"},
|
||||||
|
{1, C<&ULSF_P::TryPopMessageContext>, "TryPopMessageContext"},
|
||||||
|
};
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
~ULSF_P() = default;
|
||||||
|
|
||||||
|
Result Initialize(u64 pid) {
|
||||||
|
LOG_WARNING(Service_SM, "(stubbed) pid={}", pid);
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
Result TryPopMessageContext(OutLargeData<MenuMessageContext, BufferAttr_HipcMapAlias> out_menu_message) {
|
||||||
|
//LOG_WARNING(Service_SM, "(stubbed)");
|
||||||
|
// *out_menu_message = {};
|
||||||
|
// R_SUCCEED();
|
||||||
|
R_THROW(Kernel::ResultInvalidAddress);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class AVM final : public ServiceFramework<AVM> {
|
||||||
|
public:
|
||||||
|
explicit AVM(Core::System& system_): ServiceFramework{system_, "avm"} {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{0, &AVM::Cmd0, "Cmd0"},
|
||||||
|
};
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
~AVM() = default;
|
||||||
|
void Cmd0(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_SM, "(stubbed)");
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
class WLAN final : public ServiceFramework<WLAN> {
|
||||||
|
public:
|
||||||
|
explicit WLAN(Core::System& system_): ServiceFramework{system_, "wlan"} {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{0, &WLAN::Cmd0, "Cmd0"},
|
||||||
|
};
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
~WLAN() = default;
|
||||||
|
void Cmd0(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_SM, "(stubbed)");
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void LoopProcess(Core::System& system) {
|
void LoopProcess(Core::System& system) {
|
||||||
auto server_manager = std::make_unique<ServerManager>(system);
|
auto server_manager = std::make_unique<ServerManager>(system);
|
||||||
server_manager->RegisterNamedService("ulsf:u", std::make_shared<ULSF_U>(system));
|
server_manager->RegisterNamedService("ulsf:u", std::make_shared<ULSF_U>(system));
|
||||||
server_manager->RegisterNamedService("ulsf:p", std::make_shared<ULSF_P>(system));
|
server_manager->RegisterNamedService("ulsf:p", std::make_shared<ULSF_P>(system));
|
||||||
|
|
||||||
|
server_manager->RegisterNamedService("avm", std::make_shared<AVM>(system));
|
||||||
|
server_manager->RegisterNamedService("wlan", std::make_shared<WLAN>(system));
|
||||||
ServerManager::RunServer(std::move(server_manager));
|
ServerManager::RunServer(std::move(server_manager));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue