Merge pull request #2906 from Subv/ns_new_framework
Services/NS: Port ns:s to the new service framework.
This commit is contained in:
commit
255fd8768d
7 changed files with 77 additions and 42 deletions
|
@ -135,7 +135,8 @@ set(SRCS
|
||||||
hle/service/nim/nim_aoc.cpp
|
hle/service/nim/nim_aoc.cpp
|
||||||
hle/service/nim/nim_s.cpp
|
hle/service/nim/nim_s.cpp
|
||||||
hle/service/nim/nim_u.cpp
|
hle/service/nim/nim_u.cpp
|
||||||
hle/service/ns_s.cpp
|
hle/service/ns/ns.cpp
|
||||||
|
hle/service/ns/ns_s.cpp
|
||||||
hle/service/nwm/nwm.cpp
|
hle/service/nwm/nwm.cpp
|
||||||
hle/service/nwm/nwm_cec.cpp
|
hle/service/nwm/nwm_cec.cpp
|
||||||
hle/service/nwm/nwm_ext.cpp
|
hle/service/nwm/nwm_ext.cpp
|
||||||
|
@ -335,7 +336,8 @@ set(HEADERS
|
||||||
hle/service/nim/nim_aoc.h
|
hle/service/nim/nim_aoc.h
|
||||||
hle/service/nim/nim_s.h
|
hle/service/nim/nim_s.h
|
||||||
hle/service/nim/nim_u.h
|
hle/service/nim/nim_u.h
|
||||||
hle/service/ns_s.h
|
hle/service/ns/ns.h
|
||||||
|
hle/service/ns/ns_s.h
|
||||||
hle/service/nwm/nwm.h
|
hle/service/nwm/nwm.h
|
||||||
hle/service/nwm/nwm_cec.h
|
hle/service/nwm/nwm_cec.h
|
||||||
hle/service/nwm/nwm_ext.h
|
hle/service/nwm/nwm_ext.h
|
||||||
|
|
16
src/core/hle/service/ns/ns.cpp
Normal file
16
src/core/hle/service/ns/ns.cpp
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/ns/ns.h"
|
||||||
|
#include "core/hle/service/ns/ns_s.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NS {
|
||||||
|
|
||||||
|
void InstallInterfaces(SM::ServiceManager& service_manager) {
|
||||||
|
std::make_shared<NS_S>()->InstallAsService(service_manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace NS
|
||||||
|
} // namespace Service
|
16
src/core/hle/service/ns/ns.h
Normal file
16
src/core/hle/service/ns/ns.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// 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 NS {
|
||||||
|
|
||||||
|
/// Registers all NS services with the specified service manager.
|
||||||
|
void InstallInterfaces(SM::ServiceManager& service_manager);
|
||||||
|
|
||||||
|
} // namespace NS
|
||||||
|
} // namespace Service
|
34
src/core/hle/service/ns/ns_s.cpp
Normal file
34
src/core/hle/service/ns/ns_s.cpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
// Copyright 2015 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/ns/ns_s.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace NS {
|
||||||
|
|
||||||
|
NS_S::NS_S() : ServiceFramework("ns:s", 2) {
|
||||||
|
static const FunctionInfo functions[] = {
|
||||||
|
{0x000100C0, nullptr, "LaunchFIRM"},
|
||||||
|
{0x000200C0, nullptr, "LaunchTitle"},
|
||||||
|
{0x00030000, nullptr, "TerminateApplication"},
|
||||||
|
{0x00040040, nullptr, "TerminateProcess"},
|
||||||
|
{0x000500C0, nullptr, "LaunchApplicationFIRM"},
|
||||||
|
{0x00060042, nullptr, "SetFIRMParams4A0"},
|
||||||
|
{0x00070042, nullptr, "CardUpdateInitialize"},
|
||||||
|
{0x00080000, nullptr, "CardUpdateShutdown"},
|
||||||
|
{0x000D0140, nullptr, "SetTWLBannerHMAC"},
|
||||||
|
{0x000E0000, nullptr, "ShutdownAsync"},
|
||||||
|
{0x00100180, nullptr, "RebootSystem"},
|
||||||
|
{0x00110100, nullptr, "TerminateTitle"},
|
||||||
|
{0x001200C0, nullptr, "SetApplicationCpuTimeLimit"},
|
||||||
|
{0x00150140, nullptr, "LaunchApplication"},
|
||||||
|
{0x00160000, nullptr, "RebootSystemClean"},
|
||||||
|
};
|
||||||
|
RegisterHandlers(functions);
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_S::~NS_S() = default;
|
||||||
|
|
||||||
|
} // namespace NS
|
||||||
|
} // namespace Service
|
|
@ -4,18 +4,17 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "core/hle/kernel/kernel.h"
|
||||||
#include "core/hle/service/service.h"
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace NS {
|
namespace NS {
|
||||||
|
|
||||||
class NS_S final : public Interface {
|
/// Interface to "ns:s" service
|
||||||
|
class NS_S final : public ServiceFramework<NS_S> {
|
||||||
public:
|
public:
|
||||||
NS_S();
|
NS_S();
|
||||||
|
~NS_S();
|
||||||
std::string GetPortName() const override {
|
|
||||||
return "ns:s";
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace NS
|
} // namespace NS
|
|
@ -1,33 +0,0 @@
|
||||||
// Copyright 2015 Citra Emulator Project
|
|
||||||
// Licensed under GPLv2 or any later version
|
|
||||||
// Refer to the license.txt file included.
|
|
||||||
|
|
||||||
#include "core/hle/service/ns_s.h"
|
|
||||||
|
|
||||||
namespace Service {
|
|
||||||
namespace NS {
|
|
||||||
|
|
||||||
const Interface::FunctionInfo FunctionTable[] = {
|
|
||||||
{0x000100C0, nullptr, "LaunchFIRM"},
|
|
||||||
{0x000200C0, nullptr, "LaunchTitle"},
|
|
||||||
{0x00030000, nullptr, "TerminateApplication"},
|
|
||||||
{0x00040040, nullptr, "TerminateProcess"},
|
|
||||||
{0x000500C0, nullptr, "LaunchApplicationFIRM"},
|
|
||||||
{0x00060042, nullptr, "SetFIRMParams4A0"},
|
|
||||||
{0x00070042, nullptr, "CardUpdateInitialize"},
|
|
||||||
{0x00080000, nullptr, "CardUpdateShutdown"},
|
|
||||||
{0x000D0140, nullptr, "SetTWLBannerHMAC"},
|
|
||||||
{0x000E0000, nullptr, "ShutdownAsync"},
|
|
||||||
{0x00100180, nullptr, "RebootSystem"},
|
|
||||||
{0x00110100, nullptr, "TerminateTitle"},
|
|
||||||
{0x001200C0, nullptr, "SetApplicationCpuTimeLimit"},
|
|
||||||
{0x00150140, nullptr, "LaunchApplication"},
|
|
||||||
{0x00160000, nullptr, "RebootSystemClean"},
|
|
||||||
};
|
|
||||||
|
|
||||||
NS_S::NS_S() {
|
|
||||||
Register(FunctionTable);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace NS
|
|
||||||
} // namespace Service
|
|
|
@ -38,7 +38,7 @@
|
||||||
#include "core/hle/service/news/news.h"
|
#include "core/hle/service/news/news.h"
|
||||||
#include "core/hle/service/nfc/nfc.h"
|
#include "core/hle/service/nfc/nfc.h"
|
||||||
#include "core/hle/service/nim/nim.h"
|
#include "core/hle/service/nim/nim.h"
|
||||||
#include "core/hle/service/ns_s.h"
|
#include "core/hle/service/ns/ns.h"
|
||||||
#include "core/hle/service/nwm/nwm.h"
|
#include "core/hle/service/nwm/nwm.h"
|
||||||
#include "core/hle/service/pm_app.h"
|
#include "core/hle/service/pm_app.h"
|
||||||
#include "core/hle/service/ptm/ptm.h"
|
#include "core/hle/service/ptm/ptm.h"
|
||||||
|
@ -215,6 +215,8 @@ void Init() {
|
||||||
SM::g_service_manager = std::make_shared<SM::ServiceManager>();
|
SM::g_service_manager = std::make_shared<SM::ServiceManager>();
|
||||||
SM::ServiceManager::InstallInterfaces(SM::g_service_manager);
|
SM::ServiceManager::InstallInterfaces(SM::g_service_manager);
|
||||||
|
|
||||||
|
NS::InstallInterfaces(*SM::g_service_manager);
|
||||||
|
|
||||||
AddNamedPort(new ERR::ERR_F);
|
AddNamedPort(new ERR::ERR_F);
|
||||||
|
|
||||||
FS::ArchiveInit();
|
FS::ArchiveInit();
|
||||||
|
@ -246,7 +248,6 @@ void Init() {
|
||||||
AddService(new HTTP::HTTP_C);
|
AddService(new HTTP::HTTP_C);
|
||||||
AddService(new LDR::LDR_RO);
|
AddService(new LDR::LDR_RO);
|
||||||
AddService(new MIC::MIC_U);
|
AddService(new MIC::MIC_U);
|
||||||
AddService(new NS::NS_S);
|
|
||||||
AddService(new PM::PM_APP);
|
AddService(new PM::PM_APP);
|
||||||
AddService(new SOC::SOC_U);
|
AddService(new SOC::SOC_U);
|
||||||
AddService(new SSL::SSL_C);
|
AddService(new SSL::SSL_C);
|
||||||
|
|
Loading…
Reference in a new issue