aboutsummaryrefslogtreecommitdiff
path: root/src/core/memory.cpp
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2016-08-28 22:21:24 -0700
committerGitHub <noreply@github.com>2016-08-28 22:21:24 -0700
commit88ba5849756fd0793c1a8b17c7691cfd643248f0 (patch)
tree49df9979f3351f3eac26d8a74e25c5181ba35e6c /src/core/memory.cpp
parent743c85eb9419a288c294cc6b8cc0ccd597a35cad (diff)
parent901e7157e359b73f750d2df13a7ee12bf006babd (diff)
Merge pull request #1948 from wwylele/cro++
Implemented CRO
Diffstat (limited to 'src/core/memory.cpp')
-rw-r--r--src/core/memory.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 8c9e5d46dd..9aa8c4e5af 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -280,6 +280,20 @@ u8* GetPointer(const VAddr vaddr) {
return nullptr;
}
+std::string ReadCString(VAddr vaddr, std::size_t max_length) {
+ std::string string;
+ string.reserve(max_length);
+ for (std::size_t i = 0; i < max_length; ++i) {
+ char c = Read8(vaddr);
+ if (c == '\0')
+ break;
+ string.push_back(c);
+ ++vaddr;
+ }
+ string.shrink_to_fit();
+ return string;
+}
+
u8* GetPhysicalPointer(PAddr address) {
// TODO(Subv): This call should not go through the application's memory mapping.
return GetPointer(PhysicalToVirtualAddress(address));