Service: add fatal:u, fatal:p services
This commit is contained in:
parent
f4700ccabf
commit
dca7cfb9cf
|
@ -37,6 +37,7 @@ namespace Log {
|
||||||
SUB(Service, AM) \
|
SUB(Service, AM) \
|
||||||
SUB(Service, AOC) \
|
SUB(Service, AOC) \
|
||||||
SUB(Service, APM) \
|
SUB(Service, APM) \
|
||||||
|
SUB(Service, Fatal) \
|
||||||
SUB(Service, Friend) \
|
SUB(Service, Friend) \
|
||||||
SUB(Service, FS) \
|
SUB(Service, FS) \
|
||||||
SUB(Service, HID) \
|
SUB(Service, HID) \
|
||||||
|
|
|
@ -54,6 +54,7 @@ enum class Class : ClassType {
|
||||||
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_Audio, ///< The Audio (Audio control) service
|
Service_Audio, ///< The Audio (Audio control) service
|
||||||
|
Service_Fatal, ///< The Fatal service
|
||||||
Service_Friend, ///< The friend service
|
Service_Friend, ///< The friend service
|
||||||
Service_FS, ///< The FS (Filesystem) service
|
Service_FS, ///< The FS (Filesystem) service
|
||||||
Service_HID, ///< The HID (Human interface device) service
|
Service_HID, ///< The HID (Human interface device) service
|
||||||
|
|
|
@ -114,6 +114,12 @@ add_library(core STATIC
|
||||||
hle/service/audio/audren_u.h
|
hle/service/audio/audren_u.h
|
||||||
hle/service/audio/codecctl.cpp
|
hle/service/audio/codecctl.cpp
|
||||||
hle/service/audio/codecctl.h
|
hle/service/audio/codecctl.h
|
||||||
|
hle/service/fatal/fatal.cpp
|
||||||
|
hle/service/fatal/fatal.h
|
||||||
|
hle/service/fatal/fatal_p.cpp
|
||||||
|
hle/service/fatal/fatal_p.h
|
||||||
|
hle/service/fatal/fatal_u.cpp
|
||||||
|
hle/service/fatal/fatal_u.h
|
||||||
hle/service/filesystem/filesystem.cpp
|
hle/service/filesystem/filesystem.cpp
|
||||||
hle/service/filesystem/filesystem.h
|
hle/service/filesystem/filesystem.h
|
||||||
hle/service/filesystem/fsp_srv.cpp
|
hle/service/filesystem/fsp_srv.cpp
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "common/logging/log.h"
|
||||||
|
#include "core/hle/ipc_helpers.h"
|
||||||
|
#include "core/hle/service/fatal/fatal.h"
|
||||||
|
#include "core/hle/service/fatal/fatal_p.h"
|
||||||
|
#include "core/hle/service/fatal/fatal_u.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
Module::Interface::Interface(std::shared_ptr<Module> module, const char* name)
|
||||||
|
: ServiceFramework(name), module(std::move(module)) {}
|
||||||
|
|
||||||
|
void Module::Interface::FatalSimple(Kernel::HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp(ctx);
|
||||||
|
u32 error_code = rp.Pop<u32>();
|
||||||
|
LOG_WARNING(Service_Fatal, "(STUBBED) called, error_code=0x%X", error_code);
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Module::Interface::TransitionToFatalError(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_Fatal, "(STUBBED) called");
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InstallInterfaces(SM::ServiceManager& service_manager) {
|
||||||
|
auto module = std::make_shared<Module>();
|
||||||
|
std::make_shared<Fatal_P>(module)->InstallAsService(service_manager);
|
||||||
|
std::make_shared<Fatal_U>(module)->InstallAsService(service_manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
class Module final {
|
||||||
|
public:
|
||||||
|
class Interface : public ServiceFramework<Interface> {
|
||||||
|
public:
|
||||||
|
Interface(std::shared_ptr<Module> module, const char* name);
|
||||||
|
|
||||||
|
void FatalSimple(Kernel::HLERequestContext& ctx);
|
||||||
|
void TransitionToFatalError(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::shared_ptr<Module> module;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
void InstallInterfaces(SM::ServiceManager& service_manager);
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,14 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/fatal/fatal_p.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
Fatal_P::Fatal_P(std::shared_ptr<Module> module)
|
||||||
|
: Module::Interface(std::move(module), "fatal:p") {}
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/fatal/fatal.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
class Fatal_P final : public Module::Interface {
|
||||||
|
public:
|
||||||
|
explicit Fatal_P(std::shared_ptr<Module> module);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,19 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/fatal/fatal_u.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
Fatal_U::Fatal_U(std::shared_ptr<Module> module) : Module::Interface(std::move(module), "fatal:u") {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{1, &Fatal_U::FatalSimple, "FatalSimple"},
|
||||||
|
{2, &Fatal_U::TransitionToFatalError, "TransitionToFatalError"},
|
||||||
|
};
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/service/fatal/fatal.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace Fatal {
|
||||||
|
|
||||||
|
class Fatal_U final : public Module::Interface {
|
||||||
|
public:
|
||||||
|
explicit Fatal_U(std::shared_ptr<Module> module);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Fatal
|
||||||
|
} // namespace Service
|
|
@ -20,6 +20,7 @@
|
||||||
#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/audio/audio.h"
|
#include "core/hle/service/audio/audio.h"
|
||||||
|
#include "core/hle/service/fatal/fatal.h"
|
||||||
#include "core/hle/service/filesystem/filesystem.h"
|
#include "core/hle/service/filesystem/filesystem.h"
|
||||||
#include "core/hle/service/friend/friend.h"
|
#include "core/hle/service/friend/friend.h"
|
||||||
#include "core/hle/service/hid/hid.h"
|
#include "core/hle/service/hid/hid.h"
|
||||||
|
@ -179,6 +180,7 @@ void Init() {
|
||||||
AOC::InstallInterfaces(*SM::g_service_manager);
|
AOC::InstallInterfaces(*SM::g_service_manager);
|
||||||
APM::InstallInterfaces(*SM::g_service_manager);
|
APM::InstallInterfaces(*SM::g_service_manager);
|
||||||
Audio::InstallInterfaces(*SM::g_service_manager);
|
Audio::InstallInterfaces(*SM::g_service_manager);
|
||||||
|
Fatal::InstallInterfaces(*SM::g_service_manager);
|
||||||
FileSystem::InstallInterfaces(*SM::g_service_manager);
|
FileSystem::InstallInterfaces(*SM::g_service_manager);
|
||||||
Friend::InstallInterfaces(*SM::g_service_manager);
|
Friend::InstallInterfaces(*SM::g_service_manager);
|
||||||
HID::InstallInterfaces(*SM::g_service_manager);
|
HID::InstallInterfaces(*SM::g_service_manager);
|
||||||
|
|
Reference in New Issue