diff options
author | Lioncash <mathew1800@gmail.com> | 2019-03-08 00:48:14 +0100 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-03-08 05:27:51 +0100 |
commit | 8e510d5afa71de2ac5745f461ae3d6156aae803a (patch) | |
tree | dc6390e39cf42199fd3eafbe70e917450daa5da6 /src/core/hle/kernel/process.h | |
parent | kernel/svc: Move address arbiter signaling behind a unified API function (diff) | |
download | yuzu-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 'src/core/hle/kernel/process.h')
-rw-r--r-- | src/core/hle/kernel/process.h | 22 |
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; |