summaryrefslogtreecommitdiff
path: root/src/core/arm/unicorn
diff options
context:
space:
mode:
authorGravatar bunnei2018-03-16 18:22:14 -0400
committerGravatar bunnei2018-03-16 18:32:24 -0400
commit403f8e79eaade7209c6cfd7a9d4334ce5add28df (patch)
tree71ab181d8299e7608fa3f856ee0394d66ee55c8f /src/core/arm/unicorn
parentsvc: Use more correct values for GetInfo MapRegion and NewMapRegion. (diff)
downloadyuzu-403f8e79eaade7209c6cfd7a9d4334ce5add28df.tar.gz
yuzu-403f8e79eaade7209c6cfd7a9d4334ce5add28df.tar.xz
yuzu-403f8e79eaade7209c6cfd7a9d4334ce5add28df.zip
arm_interface: Support unmapping previously mapped memory.
Diffstat (limited to 'src/core/arm/unicorn')
-rw-r--r--src/core/arm/unicorn/arm_unicorn.cpp4
-rw-r--r--src/core/arm/unicorn/arm_unicorn.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp
index 5d2956bfd..162c766fd 100644
--- a/src/core/arm/unicorn/arm_unicorn.cpp
+++ b/src/core/arm/unicorn/arm_unicorn.cpp
@@ -77,6 +77,10 @@ void ARM_Unicorn::MapBackingMemory(VAddr address, size_t size, u8* memory,
77 CHECKED(uc_mem_map_ptr(uc, address, size, static_cast<u32>(perms), memory)); 77 CHECKED(uc_mem_map_ptr(uc, address, size, static_cast<u32>(perms), memory));
78} 78}
79 79
80void ARM_Unicorn::UnmapMemory(VAddr address, size_t size) {
81 CHECKED(uc_mem_unmap(uc, address, size));
82}
83
80void ARM_Unicorn::SetPC(u64 pc) { 84void ARM_Unicorn::SetPC(u64 pc) {
81 CHECKED(uc_reg_write(uc, UC_ARM64_REG_PC, &pc)); 85 CHECKED(uc_reg_write(uc, UC_ARM64_REG_PC, &pc));
82} 86}
diff --git a/src/core/arm/unicorn/arm_unicorn.h b/src/core/arm/unicorn/arm_unicorn.h
index c9a561dec..00b5b1865 100644
--- a/src/core/arm/unicorn/arm_unicorn.h
+++ b/src/core/arm/unicorn/arm_unicorn.h
@@ -14,6 +14,7 @@ public:
14 ~ARM_Unicorn(); 14 ~ARM_Unicorn();
15 void MapBackingMemory(VAddr address, size_t size, u8* memory, 15 void MapBackingMemory(VAddr address, size_t size, u8* memory,
16 Kernel::VMAPermission perms) override; 16 Kernel::VMAPermission perms) override;
17 void UnmapMemory(VAddr address, size_t size) override;
17 void SetPC(u64 pc) override; 18 void SetPC(u64 pc) override;
18 u64 GetPC() const override; 19 u64 GetPC() const override;
19 u64 GetReg(int index) const override; 20 u64 GetReg(int index) const override;