APT service serialization

This commit is contained in:
Hamish Milne 2019-12-25 21:43:51 +00:00 committed by zhupengfei
parent 3e752002c4
commit 5265c79056
25 changed files with 247 additions and 17 deletions

View file

@ -8,10 +8,11 @@
#include "core/hle/kernel/memory.h"
#include "core/hle/kernel/shared_memory.h"
#include "core/memory.h"
#include "core/global.h"
namespace Kernel {
SharedMemory::SharedMemory(KernelSystem& kernel) : Object(kernel), kernel(kernel) {}
SharedMemory::SharedMemory() : Object(Core::Global<KernelSystem>()), kernel(Core::Global<KernelSystem>()) {}
SharedMemory::~SharedMemory() {
for (const auto& interval : holding_memory) {
kernel.GetMemoryRegion(MemoryRegion::SYSTEM)
@ -27,7 +28,7 @@ SharedMemory::~SharedMemory() {
ResultVal<std::shared_ptr<SharedMemory>> KernelSystem::CreateSharedMemory(
Process* owner_process, u32 size, MemoryPermission permissions,
MemoryPermission other_permissions, VAddr address, MemoryRegion region, std::string name) {
auto shared_memory{std::make_shared<SharedMemory>(*this)};
auto shared_memory{std::make_shared<SharedMemory>()};
shared_memory->owner_process = owner_process;
shared_memory->name = std::move(name);
@ -72,7 +73,7 @@ ResultVal<std::shared_ptr<SharedMemory>> KernelSystem::CreateSharedMemory(
std::shared_ptr<SharedMemory> KernelSystem::CreateSharedMemoryForApplet(
u32 offset, u32 size, MemoryPermission permissions, MemoryPermission other_permissions,
std::string name) {
auto shared_memory{std::make_shared<SharedMemory>(*this)};
auto shared_memory{std::make_shared<SharedMemory>()};
// Allocate memory in heap
MemoryRegionInfo* memory_region = GetMemoryRegion(MemoryRegion::SYSTEM);

View file

@ -16,7 +16,7 @@ namespace Kernel {
class SharedMemory final : public Object {
public:
explicit SharedMemory(KernelSystem& kernel);
explicit SharedMemory();
~SharedMemory() override;
std::string GetTypeName() const override {