mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-27 09:32:30 -06:00
Serialize NIM, PS, PXI, SOC, SSL services
This commit is contained in:
parent
2409ee39cb
commit
571b1062f0
15 changed files with 66 additions and 8 deletions
15
TODO
15
TODO
|
@ -17,7 +17,7 @@
|
|||
☐ Telemetry session
|
||||
☐ Replace SERIALIZE_AS_POD with BOOST_IS_BITWISE_SERIALIZABLE
|
||||
☐ Review constructor/initialization code
|
||||
☐ Fix CI
|
||||
✔ Fix CI @done(19-12-31 21:32)
|
||||
✔ HW @done(19-08-13 15:41)
|
||||
✔ GPU regs @done(19-08-13 15:41)
|
||||
✔ LCD regs @done(19-08-13 15:41)
|
||||
|
@ -92,15 +92,14 @@
|
|||
✔ NDM @done(19-12-31 18:26)
|
||||
✔ NEWS @done(19-12-31 18:29)
|
||||
✔ NFC @done(19-12-31 20:35)
|
||||
☐ NIM
|
||||
☐ NS
|
||||
✔ NIM @done(19-12-31 21:08)
|
||||
✔ NS @done(20-01-01 00:46)
|
||||
☐ NWM
|
||||
☐ PM
|
||||
☐ PS
|
||||
✔ PS @done(20-01-01 00:54)
|
||||
☐ PTM
|
||||
☐ PXI
|
||||
✔ PXI @done(20-01-01 00:53)
|
||||
☐ QTM
|
||||
☐ SM
|
||||
☐ SOC
|
||||
☐ SSL
|
||||
✔ SOC @done(20-01-01 00:51)
|
||||
✔ SSL @done(20-01-01 00:48)
|
||||
☐ Y2R
|
|
@ -2,8 +2,11 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/archives.h"
|
||||
#include "core/hle/service/nim/nim_aoc.h"
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::NIM::NIM_AOC)
|
||||
|
||||
namespace Service::NIM {
|
||||
|
||||
NIM_AOC::NIM_AOC() : ServiceFramework("nim:aoc", 2) {
|
||||
|
|
|
@ -15,3 +15,5 @@ public:
|
|||
};
|
||||
|
||||
} // namespace Service::NIM
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::NIM::NIM_AOC)
|
||||
|
|
|
@ -2,8 +2,11 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/archives.h"
|
||||
#include "core/hle/service/nim/nim_s.h"
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::NIM::NIM_S)
|
||||
|
||||
namespace Service::NIM {
|
||||
|
||||
NIM_S::NIM_S() : ServiceFramework("nim:s", 1) {
|
||||
|
|
|
@ -15,3 +15,5 @@ public:
|
|||
};
|
||||
|
||||
} // namespace Service::NIM
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::NIM::NIM_S)
|
||||
|
|
|
@ -2,11 +2,15 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/archives.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/ipc_helpers.h"
|
||||
#include "core/hle/kernel/event.h"
|
||||
#include "core/hle/service/nim/nim_u.h"
|
||||
|
||||
SERVICE_CONSTRUCT_IMPL(Service::NIM::NIM_U)
|
||||
SERIALIZE_EXPORT_IMPL(Service::NIM::NIM_U)
|
||||
|
||||
namespace Service::NIM {
|
||||
|
||||
NIM_U::NIM_U(Core::System& system) : ServiceFramework("nim:u", 2) {
|
||||
|
|
|
@ -41,6 +41,16 @@ private:
|
|||
void CheckSysUpdateAvailable(Kernel::HLERequestContext& ctx);
|
||||
|
||||
std::shared_ptr<Kernel::Event> nim_system_update_event;
|
||||
|
||||
template <class Archive>
|
||||
void serialize(Archive& ar, const unsigned int) {
|
||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||
ar& nim_system_update_event;
|
||||
}
|
||||
friend class boost::serialization::access;
|
||||
};
|
||||
|
||||
} // namespace Service::NIM
|
||||
|
||||
SERVICE_CONSTRUCT(Service::NIM::NIM_U)
|
||||
BOOST_CLASS_EXPORT_KEY(Service::NIM::NIM_U)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include <cryptopp/aes.h>
|
||||
#include <cryptopp/modes.h>
|
||||
#include "common/archives.h"
|
||||
#include "common/logging/log.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/ipc_helpers.h"
|
||||
|
@ -11,6 +12,8 @@
|
|||
#include "core/hw/aes/arithmetic128.h"
|
||||
#include "core/hw/aes/key.h"
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::PS::PS_PS)
|
||||
|
||||
namespace Service::PS {
|
||||
|
||||
enum class AlgorithmType : u8 {
|
||||
|
|
|
@ -231,3 +231,5 @@ private:
|
|||
void InstallInterfaces(Core::System& system);
|
||||
|
||||
} // namespace Service::PS
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::PS::PS_PS)
|
||||
|
|
|
@ -2,8 +2,11 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/archives.h"
|
||||
#include "core/hle/service/pxi/dev.h"
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::PXI::DEV)
|
||||
|
||||
namespace Service::PXI {
|
||||
|
||||
DEV::DEV() : ServiceFramework("pxi:dev", 1) {
|
||||
|
|
|
@ -16,3 +16,5 @@ public:
|
|||
};
|
||||
|
||||
} // namespace Service::PXI
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::PXI::DEV)
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
#include "common/archives.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/bit_field.h"
|
||||
#include "common/common_types.h"
|
||||
|
@ -52,6 +53,8 @@
|
|||
#define closesocket(x) close(x)
|
||||
#endif
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::SOC::SOC_U)
|
||||
|
||||
namespace Service::SOC {
|
||||
|
||||
const s32 SOCKET_ERROR_VALUE = -1;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <unordered_map>
|
||||
#include <boost/serialization/unordered_map.hpp>
|
||||
#include "core/hle/service/service.h"
|
||||
|
||||
namespace Core {
|
||||
|
@ -17,6 +18,14 @@ namespace Service::SOC {
|
|||
struct SocketHolder {
|
||||
u32 socket_fd; ///< The socket descriptor
|
||||
bool blocking; ///< Whether the socket is blocking or not, it is only read on Windows.
|
||||
|
||||
private:
|
||||
template <class Archive>
|
||||
void serialize(Archive& ar, const unsigned int) {
|
||||
ar& socket_fd;
|
||||
ar& blocking;
|
||||
}
|
||||
friend class boost::serialization::access;
|
||||
};
|
||||
|
||||
class SOC_U final : public ServiceFramework<SOC_U> {
|
||||
|
@ -55,8 +64,17 @@ private:
|
|||
|
||||
/// Holds info about the currently open sockets
|
||||
std::unordered_map<u32, SocketHolder> open_sockets;
|
||||
|
||||
template <class Archive>
|
||||
void serialize(Archive& ar, const unsigned int) {
|
||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||
ar& open_sockets;
|
||||
}
|
||||
friend class boost::serialization::access;
|
||||
};
|
||||
|
||||
void InstallInterfaces(Core::System& system);
|
||||
|
||||
} // namespace Service::SOC
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::SOC::SOC_U)
|
||||
|
|
|
@ -2,12 +2,14 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/archives.h"
|
||||
#include "common/common_types.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/ipc.h"
|
||||
#include "core/hle/ipc_helpers.h"
|
||||
#include "core/hle/service/ssl_c.h"
|
||||
|
||||
SERIALIZE_EXPORT_IMPL(Service::SSL::SSL_C)
|
||||
namespace Service::SSL {
|
||||
|
||||
void SSL_C::Initialize(Kernel::HLERequestContext& ctx) {
|
||||
|
|
|
@ -28,3 +28,5 @@ private:
|
|||
void InstallInterfaces(Core::System& system);
|
||||
|
||||
} // namespace Service::SSL
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(Service::SSL::SSL_C)
|
||||
|
|
Loading…
Reference in a new issue