Skip to content
Snippets Groups Projects
Commit de729561 authored by Lioncash's avatar Lioncash
Browse files

service: Add arp services

Adds the basic skeleton of the arp services based off the information
provided by Switch Brew.
parent 2b06301d
No related branches found
No related tags found
No related merge requests found
...@@ -168,6 +168,7 @@ void FileBackend::Write(const Entry& entry) { ...@@ -168,6 +168,7 @@ void FileBackend::Write(const Entry& entry) {
SUB(Service, AM) \ SUB(Service, AM) \
SUB(Service, AOC) \ SUB(Service, AOC) \
SUB(Service, APM) \ SUB(Service, APM) \
SUB(Service, ARP) \
SUB(Service, BCAT) \ SUB(Service, BCAT) \
SUB(Service, BPC) \ SUB(Service, BPC) \
SUB(Service, BTM) \ SUB(Service, BTM) \
......
...@@ -54,6 +54,7 @@ enum class Class : ClassType { ...@@ -54,6 +54,7 @@ enum class Class : ClassType {
Service_AM, ///< The AM (Applet manager) service Service_AM, ///< The AM (Applet manager) service
Service_AOC, ///< The AOC (AddOn Content) service Service_AOC, ///< The AOC (AddOn Content) service
Service_APM, ///< The APM (Performance) service Service_APM, ///< The APM (Performance) service
Service_ARP, ///< The ARP service
Service_Audio, ///< The Audio (Audio control) service Service_Audio, ///< The Audio (Audio control) service
Service_BCAT, ///< The BCAT service Service_BCAT, ///< The BCAT service
Service_BPC, ///< The BPC service Service_BPC, ///< The BPC service
......
...@@ -134,6 +134,8 @@ add_library(core STATIC ...@@ -134,6 +134,8 @@ add_library(core STATIC
hle/service/apm/apm.h hle/service/apm/apm.h
hle/service/apm/interface.cpp hle/service/apm/interface.cpp
hle/service/apm/interface.h hle/service/apm/interface.h
hle/service/arp/arp.cpp
hle/service/arp/arp.h
hle/service/audio/audctl.cpp hle/service/audio/audctl.cpp
hle/service/audio/audctl.h hle/service/audio/audctl.h
hle/service/audio/auddbg.cpp hle/service/audio/auddbg.cpp
......
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <memory>
#include "common/logging/log.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/hle_ipc.h"
#include "core/hle/service/arp/arp.h"
#include "core/hle/service/service.h"
#include "core/hle/service/sm/sm.h"
namespace Service::ARP {
class ARP_R final : public ServiceFramework<ARP_R> {
public:
explicit ARP_R() : ServiceFramework{"arp:r"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, nullptr, "GetApplicationLaunchProperty"},
{1, nullptr, "GetApplicationLaunchPropertyWithApplicationId"},
{2, nullptr, "GetApplicationControlProperty"},
{3, nullptr, "GetApplicationControlPropertyWithApplicationId"},
};
// clang-format on
RegisterHandlers(functions);
}
};
class IRegistrar final : public ServiceFramework<IRegistrar> {
public:
explicit IRegistrar() : ServiceFramework{"IRegistrar"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, nullptr, "Issue"},
{1, nullptr, "SetApplicationLaunchProperty"},
{2, nullptr, "SetApplicationControlProperty"},
};
// clang-format on
RegisterHandlers(functions);
}
};
class ARP_W final : public ServiceFramework<ARP_W> {
public:
explicit ARP_W() : ServiceFramework{"arp:w"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &ARP_W::AcquireRegistrar, "AcquireRegistrar"},
{1, nullptr, "DeleteProperties"},
};
// clang-format on
RegisterHandlers(functions);
}
private:
void AcquireRegistrar(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(RESULT_SUCCESS);
rb.PushIpcInterface<IRegistrar>();
LOG_DEBUG(Service_ARP, "called");
}
};
void InstallInterfaces(SM::ServiceManager& sm) {
std::make_shared<ARP_R>()->InstallAsService(sm);
std::make_shared<ARP_W>()->InstallAsService(sm);
}
} // namespace Service::ARP
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
namespace Service::SM {
class ServiceManager;
}
namespace Service::ARP {
/// Registers all ARP services with the specified service manager.
void InstallInterfaces(SM::ServiceManager& sm);
} // namespace Service::ARP
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "core/hle/service/am/am.h" #include "core/hle/service/am/am.h"
#include "core/hle/service/aoc/aoc_u.h" #include "core/hle/service/aoc/aoc_u.h"
#include "core/hle/service/apm/apm.h" #include "core/hle/service/apm/apm.h"
#include "core/hle/service/arp/arp.h"
#include "core/hle/service/audio/audio.h" #include "core/hle/service/audio/audio.h"
#include "core/hle/service/bcat/bcat.h" #include "core/hle/service/bcat/bcat.h"
#include "core/hle/service/bpc/bpc.h" #include "core/hle/service/bpc/bpc.h"
...@@ -207,6 +208,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { ...@@ -207,6 +208,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {
AM::InstallInterfaces(*sm, nv_flinger); AM::InstallInterfaces(*sm, nv_flinger);
AOC::InstallInterfaces(*sm); AOC::InstallInterfaces(*sm);
APM::InstallInterfaces(*sm); APM::InstallInterfaces(*sm);
ARP::InstallInterfaces(*sm);
Audio::InstallInterfaces(*sm); Audio::InstallInterfaces(*sm);
BCAT::InstallInterfaces(*sm); BCAT::InstallInterfaces(*sm);
BPC::InstallInterfaces(*sm); BPC::InstallInterfaces(*sm);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment