diff options
author | Lioncash <mathew1800@gmail.com> | 2018-09-21 07:26:29 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-09-21 09:50:12 +0200 |
commit | acfc801d14b1883f54b8fe66ac428982f9898258 (patch) | |
tree | efb94a0647b8756638fc4d95d18ad9782578ce4c /src/core/hle/kernel/process.h | |
parent | Added support for uncompressed NSOs (#1374) (diff) | |
download | yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar.gz yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar.bz2 yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar.lz yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar.xz yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.tar.zst yuzu-acfc801d14b1883f54b8fe66ac428982f9898258.zip |
Diffstat (limited to 'src/core/hle/kernel/process.h')
-rw-r--r-- | src/core/hle/kernel/process.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h index 81538f70c..84027a31a 100644 --- a/src/core/hle/kernel/process.h +++ b/src/core/hle/kernel/process.h @@ -176,8 +176,25 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////// // Memory Management + // Marks the next available region as used and returns the address of the slot. + VAddr MarkNextAvailableTLSSlotAsUsed(Thread& thread); + + // Frees a used TLS slot identified by the given address + void FreeTLSSlot(VAddr tls_address); + + ResultVal<VAddr> HeapAllocate(VAddr target, u64 size, VMAPermission perms); + ResultCode HeapFree(VAddr target, u32 size); + + ResultCode MirrorMemory(VAddr dst_addr, VAddr src_addr, u64 size); + + ResultCode UnmapMemory(VAddr dst_addr, VAddr src_addr, u64 size); + VMManager vm_manager; +private: + explicit Process(KernelCore& kernel); + ~Process() override; + // Memory used to back the allocations in the regular heap. A single vector is used to cover // the entire virtual address space extents that bound the allocations, including any holes. // This makes deallocation and reallocation of holes fast and keeps process memory contiguous @@ -197,17 +214,6 @@ public: std::vector<std::bitset<8>> tls_slots; std::string name; - - ResultVal<VAddr> HeapAllocate(VAddr target, u64 size, VMAPermission perms); - ResultCode HeapFree(VAddr target, u32 size); - - ResultCode MirrorMemory(VAddr dst_addr, VAddr src_addr, u64 size); - - ResultCode UnmapMemory(VAddr dst_addr, VAddr src_addr, u64 size); - -private: - explicit Process(KernelCore& kernel); - ~Process() override; }; } // namespace Kernel |