service: Add eupld services

Adds the skeleton for the eupld services based off information on Switch
Brew.
master
Lioncash 2018-07-25 19:15:31 +07:00
parent 821f2c03cb
commit 7458e71f24
4 changed files with 72 additions and 0 deletions

@ -140,6 +140,8 @@ add_library(core STATIC
hle/service/erpt/erpt.h
hle/service/es/es.cpp
hle/service/es/es.h
hle/service/eupld/eupld.cpp
hle/service/eupld/eupld.h
hle/service/fatal/fatal.cpp
hle/service/fatal/fatal.h
hle/service/fatal/fatal_p.cpp

@ -0,0 +1,52 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <memory>
#include "core/hle/service/eupld/eupld.h"
#include "core/hle/service/service.h"
#include "core/hle/service/sm/sm.h"
namespace Service::EUPLD {
class ErrorUploadContext final : public ServiceFramework<ErrorUploadContext> {
public:
explicit ErrorUploadContext() : ServiceFramework{"eupld:c"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, nullptr, "SetUrl"},
{1, nullptr, "ImportCrt"},
{2, nullptr, "ImportPki"},
{3, nullptr, "SetAutoUpload"},
};
// clang-format on
RegisterHandlers(functions);
}
};
class ErrorUploadRequest final : public ServiceFramework<ErrorUploadRequest> {
public:
explicit ErrorUploadRequest() : ServiceFramework{"eupld:r"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, nullptr, "Initialize"},
{1, nullptr, "UploadAll"},
{2, nullptr, "UploadSelected"},
{3, nullptr, "GetUploadStatus"},
{4, nullptr, "CancelUpload"},
{5, nullptr, "GetResult"},
};
// clang-format on
RegisterHandlers(functions);
}
};
void InstallInterfaces(SM::ServiceManager& sm) {
std::make_shared<ErrorUploadContext>()->InstallAsService(sm);
std::make_shared<ErrorUploadRequest>()->InstallAsService(sm);
}
} // namespace Service::EUPLD

@ -0,0 +1,16 @@
// 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::EUPLD {
/// Registers all EUPLD services with the specified service manager.
void InstallInterfaces(SM::ServiceManager& sm);
} // namespace Service::EUPLD

@ -23,6 +23,7 @@
#include "core/hle/service/bcat/bcat.h"
#include "core/hle/service/erpt/erpt.h"
#include "core/hle/service/es/es.h"
#include "core/hle/service/eupld/eupld.h"
#include "core/hle/service/fatal/fatal.h"
#include "core/hle/service/filesystem/filesystem.h"
#include "core/hle/service/friend/friend.h"
@ -191,6 +192,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {
Audio::InstallInterfaces(*sm);
ERPT::InstallInterfaces(*sm);
ES::InstallInterfaces(*sm);
EUPLD::InstallInterfaces(*sm);
Fatal::InstallInterfaces(*sm);
FileSystem::InstallInterfaces(*sm);
Friend::InstallInterfaces(*sm);