summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/process.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-03-08 00:48:14 +0100
committerLioncash <mathew1800@gmail.com>2019-03-08 05:27:51 +0100
commit8e510d5afa71de2ac5745f461ae3d6156aae803a (patch)
treedc6390e39cf42199fd3eafbe70e917450daa5da6 /src/core/hle/kernel/process.h
parentkernel/svc: Move address arbiter signaling behind a unified API function (diff)
downloadyuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar.gz
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar.bz2
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar.lz
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar.xz
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.tar.zst
yuzu-8e510d5afa71de2ac5745f461ae3d6156aae803a.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/process.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index dcc57ae9f..2a132c894 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -12,12 +12,17 @@
#include <vector>
#include <boost/container/static_vector.hpp>
#include "common/common_types.h"
+#include "core/hle/kernel/address_arbiter.h"
#include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/process_capability.h"
#include "core/hle/kernel/vm_manager.h"
#include "core/hle/kernel/wait_object.h"
#include "core/hle/result.h"
+namespace Core {
+class System;
+}
+
namespace FileSys {
class ProgramMetadata;
}
@@ -116,7 +121,7 @@ public:
static constexpr std::size_t RANDOM_ENTROPY_SIZE = 4;
- static SharedPtr<Process> Create(KernelCore& kernel, std::string&& name);
+ static SharedPtr<Process> Create(Core::System& system, std::string&& name);
std::string GetTypeName() const override {
return "Process";
@@ -150,6 +155,16 @@ public:
return handle_table;
}
+ /// Gets a reference to the process' address arbiter.
+ AddressArbiter& GetAddressArbiter() {
+ return address_arbiter;
+ }
+
+ /// Gets a const reference to the process' address arbiter.
+ const AddressArbiter& GetAddressArbiter() const {
+ return address_arbiter;
+ }
+
/// Gets the current status of the process
ProcessStatus GetStatus() const {
return status;
@@ -251,7 +266,7 @@ public:
void FreeTLSSlot(VAddr tls_address);
private:
- explicit Process(KernelCore& kernel);
+ explicit Process(Core::System& kernel);
~Process() override;
/// Checks if the specified thread should wait until this process is available.
@@ -309,6 +324,9 @@ private:
/// Per-process handle table for storing created object handles in.
HandleTable handle_table;
+ /// Per-process address arbiter.
+ AddressArbiter address_arbiter;
+
/// Random values for svcGetInfo RandomEntropy
std::array<u64, RANDOM_ENTROPY_SIZE> random_entropy;