|
|
@ -3,6 +3,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <array>
|
|
|
|
|
|
|
|
|
|
|
|
#include "core/hle/kernel/k_auto_object.h"
|
|
|
|
#include "core/hle/kernel/k_auto_object.h"
|
|
|
|
#include "core/hle/kernel/k_event.h"
|
|
|
|
#include "core/hle/kernel/k_event.h"
|
|
|
|
#include "core/hle/kernel/k_memory_block.h"
|
|
|
|
#include "core/hle/kernel/k_memory_block.h"
|
|
|
@ -52,8 +54,7 @@ public:
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
explicit SessionMappings(KernelCore& kernel_)
|
|
|
|
explicit SessionMappings(KernelCore& kernel_) : kernel(kernel_) {}
|
|
|
|
: kernel(kernel_), m_mappings(nullptr), m_num_send(), m_num_recv(), m_num_exch() {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Initialize() {}
|
|
|
|
void Initialize() {}
|
|
|
|
void Finalize();
|
|
|
|
void Finalize();
|
|
|
@ -149,17 +150,15 @@ public:
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
private:
|
|
|
|
KernelCore& kernel;
|
|
|
|
KernelCore& kernel;
|
|
|
|
Mapping m_static_mappings[NumStaticMappings];
|
|
|
|
std::array<Mapping, NumStaticMappings> m_static_mappings;
|
|
|
|
Mapping* m_mappings;
|
|
|
|
Mapping* m_mappings{};
|
|
|
|
u8 m_num_send;
|
|
|
|
u8 m_num_send{};
|
|
|
|
u8 m_num_recv;
|
|
|
|
u8 m_num_recv{};
|
|
|
|
u8 m_num_exch;
|
|
|
|
u8 m_num_exch{};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
explicit KSessionRequest(KernelCore& kernel_)
|
|
|
|
explicit KSessionRequest(KernelCore& kernel_) : KAutoObject(kernel_), m_mappings(kernel_) {}
|
|
|
|
: KAutoObject(kernel_), m_mappings(kernel_), m_thread(nullptr), m_server(nullptr),
|
|
|
|
|
|
|
|
m_event(nullptr) {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static KSessionRequest* Create(KernelCore& kernel) {
|
|
|
|
static KSessionRequest* Create(KernelCore& kernel) {
|
|
|
|
KSessionRequest* req = KSessionRequest::Allocate(kernel);
|
|
|
|
KSessionRequest* req = KSessionRequest::Allocate(kernel);
|
|
|
@ -281,7 +280,7 @@ public:
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
private:
|
|
|
|
// NOTE: This is public and virtual in Nintendo's kernel.
|
|
|
|
// NOTE: This is public and virtual in Nintendo's kernel.
|
|
|
|
void Finalize() {
|
|
|
|
void Finalize() override {
|
|
|
|
m_mappings.Finalize();
|
|
|
|
m_mappings.Finalize();
|
|
|
|
|
|
|
|
|
|
|
|
if (m_thread) {
|
|
|
|
if (m_thread) {
|
|
|
@ -297,11 +296,11 @@ private:
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
private:
|
|
|
|
SessionMappings m_mappings;
|
|
|
|
SessionMappings m_mappings;
|
|
|
|
KThread* m_thread;
|
|
|
|
KThread* m_thread{};
|
|
|
|
KProcess* m_server;
|
|
|
|
KProcess* m_server{};
|
|
|
|
KEvent* m_event;
|
|
|
|
KEvent* m_event{};
|
|
|
|
uintptr_t m_address;
|
|
|
|
uintptr_t m_address{};
|
|
|
|
size_t m_size;
|
|
|
|
size_t m_size{};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace Kernel
|
|
|
|
} // namespace Kernel
|
|
|
|