Merge pull request #2291 from lioncash/svc
service: Add the cfg:nor service
This commit is contained in:
commit
6edb024d38
|
@ -77,6 +77,7 @@ set(SRCS
|
||||||
hle/service/cecd/cecd_u.cpp
|
hle/service/cecd/cecd_u.cpp
|
||||||
hle/service/cfg/cfg.cpp
|
hle/service/cfg/cfg.cpp
|
||||||
hle/service/cfg/cfg_i.cpp
|
hle/service/cfg/cfg_i.cpp
|
||||||
|
hle/service/cfg/cfg_nor.cpp
|
||||||
hle/service/cfg/cfg_s.cpp
|
hle/service/cfg/cfg_s.cpp
|
||||||
hle/service/cfg/cfg_u.cpp
|
hle/service/cfg/cfg_u.cpp
|
||||||
hle/service/csnd_snd.cpp
|
hle/service/csnd_snd.cpp
|
||||||
|
@ -239,6 +240,7 @@ set(HEADERS
|
||||||
hle/service/cecd/cecd_u.h
|
hle/service/cecd/cecd_u.h
|
||||||
hle/service/cfg/cfg.h
|
hle/service/cfg/cfg.h
|
||||||
hle/service/cfg/cfg_i.h
|
hle/service/cfg/cfg_i.h
|
||||||
|
hle/service/cfg/cfg_nor.h
|
||||||
hle/service/cfg/cfg_s.h
|
hle/service/cfg/cfg_s.h
|
||||||
hle/service/cfg/cfg_u.h
|
hle/service/cfg/cfg_u.h
|
||||||
hle/service/csnd_snd.h
|
hle/service/csnd_snd.h
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "core/hle/result.h"
|
#include "core/hle/result.h"
|
||||||
#include "core/hle/service/cfg/cfg.h"
|
#include "core/hle/service/cfg/cfg.h"
|
||||||
#include "core/hle/service/cfg/cfg_i.h"
|
#include "core/hle/service/cfg/cfg_i.h"
|
||||||
|
#include "core/hle/service/cfg/cfg_nor.h"
|
||||||
#include "core/hle/service/cfg/cfg_s.h"
|
#include "core/hle/service/cfg/cfg_s.h"
|
||||||
#include "core/hle/service/cfg/cfg_u.h"
|
#include "core/hle/service/cfg/cfg_u.h"
|
||||||
#include "core/hle/service/fs/archive.h"
|
#include "core/hle/service/fs/archive.h"
|
||||||
|
@ -528,9 +529,10 @@ ResultCode LoadConfigNANDSaveFile() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Init() {
|
void Init() {
|
||||||
AddService(new CFG_I_Interface);
|
AddService(new CFG_I);
|
||||||
AddService(new CFG_S_Interface);
|
AddService(new CFG_NOR);
|
||||||
AddService(new CFG_U_Interface);
|
AddService(new CFG_S);
|
||||||
|
AddService(new CFG_U);
|
||||||
|
|
||||||
LoadConfigNANDSaveFile();
|
LoadConfigNANDSaveFile();
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ const Interface::FunctionInfo FunctionTable[] = {
|
||||||
{0x08180042, nullptr, "SecureInfoGetSerialNo"},
|
{0x08180042, nullptr, "SecureInfoGetSerialNo"},
|
||||||
};
|
};
|
||||||
|
|
||||||
CFG_I_Interface::CFG_I_Interface() {
|
CFG_I::CFG_I() {
|
||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace CFG {
|
namespace CFG {
|
||||||
|
|
||||||
class CFG_I_Interface : public Service::Interface {
|
class CFG_I final : public Interface {
|
||||||
public:
|
public:
|
||||||
CFG_I_Interface();
|
CFG_I();
|
||||||
|
|
||||||
std::string GetPortName() const override {
|
std::string GetPortName() const override {
|
||||||
return "cfg:i";
|
return "cfg:i";
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright 2016 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/hle/service/cfg/cfg.h"
|
||||||
|
#include "core/hle/service/cfg/cfg_nor.h"
|
||||||
|
|
||||||
|
namespace Service {
|
||||||
|
namespace CFG {
|
||||||
|
|
||||||
|
const Interface::FunctionInfo FunctionTable[] = {
|
||||||
|
{0x00010040, nullptr, "Initialize"},
|
||||||
|
{0x00020000, nullptr, "Shutdown"},
|
||||||
|
{0x00050082, nullptr, "ReadData"},
|
||||||
|
{0x00060082, nullptr, "WriteData"},
|
||||||
|
};
|
||||||
|
|
||||||
|
CFG_NOR::CFG_NOR() {
|
||||||
|
Register(FunctionTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace CFG
|
||||||
|
} // namespace Service
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2016 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 CFG {
|
||||||
|
|
||||||
|
class CFG_NOR final : public Interface {
|
||||||
|
public:
|
||||||
|
CFG_NOR();
|
||||||
|
|
||||||
|
std::string GetPortName() const override {
|
||||||
|
return "cfg:nor";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace CFG
|
||||||
|
} // namespace Service
|
|
@ -33,7 +33,7 @@ const Interface::FunctionInfo FunctionTable[] = {
|
||||||
{0x04090000, nullptr, "UpdateConfigBlk00040003"},
|
{0x04090000, nullptr, "UpdateConfigBlk00040003"},
|
||||||
};
|
};
|
||||||
|
|
||||||
CFG_S_Interface::CFG_S_Interface() {
|
CFG_S::CFG_S() {
|
||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace CFG {
|
namespace CFG {
|
||||||
|
|
||||||
class CFG_S_Interface : public Service::Interface {
|
class CFG_S final : public Interface {
|
||||||
public:
|
public:
|
||||||
CFG_S_Interface();
|
CFG_S();
|
||||||
|
|
||||||
std::string GetPortName() const override {
|
std::string GetPortName() const override {
|
||||||
return "cfg:s";
|
return "cfg:s";
|
||||||
|
|
|
@ -23,7 +23,7 @@ const Interface::FunctionInfo FunctionTable[] = {
|
||||||
{0x000B0000, nullptr, "IsFangateSupported"},
|
{0x000B0000, nullptr, "IsFangateSupported"},
|
||||||
};
|
};
|
||||||
|
|
||||||
CFG_U_Interface::CFG_U_Interface() {
|
CFG_U::CFG_U() {
|
||||||
Register(FunctionTable);
|
Register(FunctionTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
namespace Service {
|
namespace Service {
|
||||||
namespace CFG {
|
namespace CFG {
|
||||||
|
|
||||||
class CFG_U_Interface : public Service::Interface {
|
class CFG_U final : public Interface {
|
||||||
public:
|
public:
|
||||||
CFG_U_Interface();
|
CFG_U();
|
||||||
|
|
||||||
std::string GetPortName() const override {
|
std::string GetPortName() const override {
|
||||||
return "cfg:u";
|
return "cfg:u";
|
||||||
|
|
Reference in New Issue