Browse Source

vm_manager: Add support for storing and getting main code region

Used as root for one region of cheats, set by loader
nce_cpp
Zach Hilman 7 years ago
parent
commit
df783dac1f
  1. 17
      src/core/hle/kernel/vm_manager.cpp
  2. 11
      src/core/hle/kernel/vm_manager.h

17
src/core/hle/kernel/vm_manager.cpp

@ -786,6 +786,23 @@ u64 VMManager::GetNewMapRegionSize() const {
return new_map_region_end - new_map_region_base;
}
void VMManager::SetMainCodeRegion(VAddr begin, VAddr end) {
main_code_region_base = begin;
main_code_region_end = end;
}
VAddr VMManager::GetMainCodeRegionBaseAddress() const {
return main_code_region_base;
}
VAddr VMManager::GetMainCodeRegionEndAddress() const {
return main_code_region_end;
}
u64 VMManager::GetMainCodeRegionSize() const {
return main_code_region_end - main_code_region_base;
}
VAddr VMManager::GetTLSIORegionBaseAddress() const {
return tls_io_region_base;
}

11
src/core/hle/kernel/vm_manager.h

@ -480,6 +480,14 @@ public:
/// Gets the total size of the new map region in bytes.
u64 GetNewMapRegionSize() const;
void SetMainCodeRegion(VAddr begin, VAddr end);
VAddr GetMainCodeRegionBaseAddress() const;
VAddr GetMainCodeRegionEndAddress() const;
u64 GetMainCodeRegionSize() const;
/// Gets the base address of the TLS IO region.
VAddr GetTLSIORegionBaseAddress() const;
@ -598,6 +606,9 @@ private:
VAddr new_map_region_base = 0;
VAddr new_map_region_end = 0;
VAddr main_code_region_base = 0;
VAddr main_code_region_end = 0;
VAddr tls_io_region_base = 0;
VAddr tls_io_region_end = 0;

Loading…
Cancel
Save