summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-12-22 21:29:52 -0500
committerGravatar Zach Hilman2019-03-04 18:39:58 -0500
commitb952a3055575224d3f873b4a24498714f8eb2820 (patch)
tree1bd1996e0d4161cfc7816f25c4902b274baf3fc6 /src/core/hle/kernel
parentpatch_manager: Display cheats in game list add-ons (diff)
downloadyuzu-b952a3055575224d3f873b4a24498714f8eb2820.tar.gz
yuzu-b952a3055575224d3f873b4a24498714f8eb2820.tar.xz
yuzu-b952a3055575224d3f873b4a24498714f8eb2820.zip
vm_manager: Add support for storing and getting main code region
Used as root for one region of cheats, set by loader
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/vm_manager.cpp17
-rw-r--r--src/core/hle/kernel/vm_manager.h11
2 files changed, 28 insertions, 0 deletions
diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp
index 10ad94aa6..161a83660 100644
--- a/src/core/hle/kernel/vm_manager.cpp
+++ b/src/core/hle/kernel/vm_manager.cpp
@@ -786,6 +786,23 @@ u64 VMManager::GetNewMapRegionSize() const {
786 return new_map_region_end - new_map_region_base; 786 return new_map_region_end - new_map_region_base;
787} 787}
788 788
789void VMManager::SetMainCodeRegion(VAddr begin, VAddr end) {
790 main_code_region_base = begin;
791 main_code_region_end = end;
792}
793
794VAddr VMManager::GetMainCodeRegionBaseAddress() const {
795 return main_code_region_base;
796}
797
798VAddr VMManager::GetMainCodeRegionEndAddress() const {
799 return main_code_region_end;
800}
801
802u64 VMManager::GetMainCodeRegionSize() const {
803 return main_code_region_end - main_code_region_base;
804}
805
789VAddr VMManager::GetTLSIORegionBaseAddress() const { 806VAddr VMManager::GetTLSIORegionBaseAddress() const {
790 return tls_io_region_base; 807 return tls_io_region_base;
791} 808}
diff --git a/src/core/hle/kernel/vm_manager.h b/src/core/hle/kernel/vm_manager.h
index 6091533bc..728318f4b 100644
--- a/src/core/hle/kernel/vm_manager.h
+++ b/src/core/hle/kernel/vm_manager.h
@@ -480,6 +480,14 @@ public:
480 /// Gets the total size of the new map region in bytes. 480 /// Gets the total size of the new map region in bytes.
481 u64 GetNewMapRegionSize() const; 481 u64 GetNewMapRegionSize() const;
482 482
483 void SetMainCodeRegion(VAddr begin, VAddr end);
484
485 VAddr GetMainCodeRegionBaseAddress() const;
486
487 VAddr GetMainCodeRegionEndAddress() const;
488
489 u64 GetMainCodeRegionSize() const;
490
483 /// Gets the base address of the TLS IO region. 491 /// Gets the base address of the TLS IO region.
484 VAddr GetTLSIORegionBaseAddress() const; 492 VAddr GetTLSIORegionBaseAddress() const;
485 493
@@ -598,6 +606,9 @@ private:
598 VAddr new_map_region_base = 0; 606 VAddr new_map_region_base = 0;
599 VAddr new_map_region_end = 0; 607 VAddr new_map_region_end = 0;
600 608
609 VAddr main_code_region_base = 0;
610 VAddr main_code_region_end = 0;
611
601 VAddr tls_io_region_base = 0; 612 VAddr tls_io_region_base = 0;
602 VAddr tls_io_region_end = 0; 613 VAddr tls_io_region_end = 0;
603 614