summaryrefslogtreecommitdiff
path: root/src/core/memory.cpp
diff options
context:
space:
mode:
authorGravatar Lioncash2019-11-26 15:48:19 -0500
committerGravatar Lioncash2019-11-26 21:55:38 -0500
commitb2165c6b353be5e8117d1f9bc677bb198fa9d8cd (patch)
tree1b08113cf73a864c7c3e74cd4a3e1cca53879ce2 /src/core/memory.cpp
parentcore/memory: Migrate over GetPointer() (diff)
downloadyuzu-b2165c6b353be5e8117d1f9bc677bb198fa9d8cd.tar.gz
yuzu-b2165c6b353be5e8117d1f9bc677bb198fa9d8cd.tar.xz
yuzu-b2165c6b353be5e8117d1f9bc677bb198fa9d8cd.zip
core/memory: Migrate over ReadCString() to the Memory class
This only had one usage spot, so this is fairly straightforward to convert over.
Diffstat (limited to 'src/core/memory.cpp')
-rw-r--r--src/core/memory.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 93cd67e39..fb824d710 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -210,6 +210,21 @@ struct Memory::Impl {
210 return nullptr; 210 return nullptr;
211 } 211 }
212 212
213 std::string ReadCString(VAddr vaddr, std::size_t max_length) {
214 std::string string;
215 string.reserve(max_length);
216 for (std::size_t i = 0; i < max_length; ++i) {
217 const char c = Read8(vaddr);
218 if (c == '\0') {
219 break;
220 }
221 string.push_back(c);
222 ++vaddr;
223 }
224 string.shrink_to_fit();
225 return string;
226 }
227
213 /** 228 /**
214 * Maps a region of pages as a specific type. 229 * Maps a region of pages as a specific type.
215 * 230 *
@@ -299,6 +314,10 @@ const u8* Memory::GetPointer(VAddr vaddr) const {
299 return impl->GetPointer(vaddr); 314 return impl->GetPointer(vaddr);
300} 315}
301 316
317std::string Memory::ReadCString(VAddr vaddr, std::size_t max_length) {
318 return impl->ReadCString(vaddr, max_length);
319}
320
302void SetCurrentPageTable(Kernel::Process& process) { 321void SetCurrentPageTable(Kernel::Process& process) {
303 current_page_table = &process.VMManager().page_table; 322 current_page_table = &process.VMManager().page_table;
304 323
@@ -315,20 +334,6 @@ bool IsKernelVirtualAddress(const VAddr vaddr) {
315 return KERNEL_REGION_VADDR <= vaddr && vaddr < KERNEL_REGION_END; 334 return KERNEL_REGION_VADDR <= vaddr && vaddr < KERNEL_REGION_END;
316} 335}
317 336
318std::string ReadCString(VAddr vaddr, std::size_t max_length) {
319 std::string string;
320 string.reserve(max_length);
321 for (std::size_t i = 0; i < max_length; ++i) {
322 char c = Read8(vaddr);
323 if (c == '\0')
324 break;
325 string.push_back(c);
326 ++vaddr;
327 }
328 string.shrink_to_fit();
329 return string;
330}
331
332void RasterizerMarkRegionCached(VAddr vaddr, u64 size, bool cached) { 337void RasterizerMarkRegionCached(VAddr vaddr, u64 size, bool cached) {
333 if (vaddr == 0) { 338 if (vaddr == 0) {
334 return; 339 return;