diff options
| author | 2014-12-03 01:13:29 -0500 | |
|---|---|---|
| committer | 2014-12-03 01:23:29 -0500 | |
| commit | e3886adc2246c1f9da65deb4ae5ec6360788c77f (patch) | |
| tree | d3e324a0b8ead576728bfb2788b0119012ec73bf | |
| parent | Merge pull request #237 from vaguilar/fix-viewport (diff) | |
| download | yuzu-e3886adc2246c1f9da65deb4ae5ec6360788c77f.tar.gz yuzu-e3886adc2246c1f9da65deb4ae5ec6360788c77f.tar.xz yuzu-e3886adc2246c1f9da65deb4ae5ec6360788c77f.zip | |
MemMap: Updated memory map to subtract base address instead of mask.
- More readable, a little less error prone.
Conflicts:
src/core/mem_map.h
src/core/mem_map_funcs.cpp
Diffstat (limited to '')
| -rw-r--r-- | src/core/mem_map.h | 10 | ||||
| -rw-r--r-- | src/core/mem_map_funcs.cpp | 42 |
2 files changed, 21 insertions, 31 deletions
diff --git a/src/core/mem_map.h b/src/core/mem_map.h index a58c59244..2e2c0bdf7 100644 --- a/src/core/mem_map.h +++ b/src/core/mem_map.h | |||
| @@ -27,47 +27,39 @@ enum { | |||
| 27 | FCRAM_PADDR_END = (FCRAM_PADDR + FCRAM_SIZE), ///< FCRAM end of physical space | 27 | FCRAM_PADDR_END = (FCRAM_PADDR + FCRAM_SIZE), ///< FCRAM end of physical space |
| 28 | FCRAM_VADDR = 0x08000000, ///< FCRAM virtual address | 28 | FCRAM_VADDR = 0x08000000, ///< FCRAM virtual address |
| 29 | FCRAM_VADDR_END = (FCRAM_VADDR + FCRAM_SIZE), ///< FCRAM end of virtual space | 29 | FCRAM_VADDR_END = (FCRAM_VADDR + FCRAM_SIZE), ///< FCRAM end of virtual space |
| 30 | FCRAM_MASK = (FCRAM_SIZE - 1), ///< FCRAM mask | ||
| 31 | 30 | ||
| 32 | SHARED_MEMORY_SIZE = 0x04000000, ///< Shared memory size | 31 | SHARED_MEMORY_SIZE = 0x04000000, ///< Shared memory size |
| 33 | SHARED_MEMORY_VADDR = 0x10000000, ///< Shared memory | 32 | SHARED_MEMORY_VADDR = 0x10000000, ///< Shared memory |
| 34 | SHARED_MEMORY_VADDR_END = (SHARED_MEMORY_VADDR + SHARED_MEMORY_SIZE), | 33 | SHARED_MEMORY_VADDR_END = (SHARED_MEMORY_VADDR + SHARED_MEMORY_SIZE), |
| 35 | SHARED_MEMORY_MASK = (SHARED_MEMORY_SIZE - 1), | ||
| 36 | 34 | ||
| 37 | CONFIG_MEMORY_SIZE = 0x00001000, ///< Configuration memory size | 35 | CONFIG_MEMORY_SIZE = 0x00001000, ///< Configuration memory size |
| 38 | CONFIG_MEMORY_VADDR = 0x1FF80000, ///< Configuration memory virtual address | 36 | CONFIG_MEMORY_VADDR = 0x1FF80000, ///< Configuration memory virtual address |
| 39 | CONFIG_MEMORY_VADDR_END = (CONFIG_MEMORY_VADDR + CONFIG_MEMORY_SIZE), | 37 | CONFIG_MEMORY_VADDR_END = (CONFIG_MEMORY_VADDR + CONFIG_MEMORY_SIZE), |
| 40 | CONFIG_MEMORY_MASK = (CONFIG_MEMORY_SIZE - 1), | ||
| 41 | 38 | ||
| 42 | KERNEL_MEMORY_SIZE = 0x00001000, ///< Kernel memory size | 39 | KERNEL_MEMORY_SIZE = 0x00001000, ///< Kernel memory size |
| 43 | KERNEL_MEMORY_VADDR = 0xFFFF0000, ///< Kernel memory where the kthread objects etc are | 40 | KERNEL_MEMORY_VADDR = 0xFFFF0000, ///< Kernel memory where the kthread objects etc are |
| 44 | KERNEL_MEMORY_VADDR_END = (KERNEL_MEMORY_VADDR + KERNEL_MEMORY_SIZE), | 41 | KERNEL_MEMORY_VADDR_END = (KERNEL_MEMORY_VADDR + KERNEL_MEMORY_SIZE), |
| 45 | KERNEL_MEMORY_MASK = (KERNEL_MEMORY_SIZE - 1), | ||
| 46 | 42 | ||
| 47 | EXEFS_CODE_SIZE = 0x03F00000, | 43 | EXEFS_CODE_SIZE = 0x03F00000, |
| 48 | EXEFS_CODE_VADDR = 0x00100000, ///< ExeFS:/.code is loaded here | 44 | EXEFS_CODE_VADDR = 0x00100000, ///< ExeFS:/.code is loaded here |
| 49 | EXEFS_CODE_VADDR_END = (EXEFS_CODE_VADDR + EXEFS_CODE_SIZE), | 45 | EXEFS_CODE_VADDR_END = (EXEFS_CODE_VADDR + EXEFS_CODE_SIZE), |
| 50 | EXEFS_CODE_MASK = 0x03FFFFFF, | ||
| 51 | 46 | ||
| 52 | // Region of FCRAM used by system | 47 | // Region of FCRAM used by system |
| 53 | SYSTEM_MEMORY_SIZE = 0x02C00000, ///< 44MB | 48 | SYSTEM_MEMORY_SIZE = 0x02C00000, ///< 44MB |
| 54 | SYSTEM_MEMORY_VADDR = 0x04000000, | 49 | SYSTEM_MEMORY_VADDR = 0x04000000, |
| 55 | SYSTEM_MEMORY_VADDR_END = (SYSTEM_MEMORY_VADDR + SYSTEM_MEMORY_SIZE), | 50 | SYSTEM_MEMORY_VADDR_END = (SYSTEM_MEMORY_VADDR + SYSTEM_MEMORY_SIZE), |
| 56 | SYSTEM_MEMORY_MASK = 0x03FFFFFF, | ||
| 57 | 51 | ||
| 58 | HEAP_SIZE = FCRAM_SIZE, ///< Application heap size | 52 | HEAP_SIZE = FCRAM_SIZE, ///< Application heap size |
| 59 | //HEAP_PADDR = HEAP_GSP_SIZE, | 53 | //HEAP_PADDR = HEAP_GSP_SIZE, |
| 60 | //HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE), | 54 | //HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE), |
| 61 | HEAP_VADDR = 0x08000000, | 55 | HEAP_VADDR = 0x08000000, |
| 62 | HEAP_VADDR_END = (HEAP_VADDR + HEAP_SIZE), | 56 | HEAP_VADDR_END = (HEAP_VADDR + HEAP_SIZE), |
| 63 | HEAP_MASK = (HEAP_SIZE - 1), | ||
| 64 | 57 | ||
| 65 | HEAP_GSP_SIZE = 0x02000000, ///< GSP heap size... TODO: Define correctly? | 58 | HEAP_GSP_SIZE = 0x02000000, ///< GSP heap size... TODO: Define correctly? |
| 66 | HEAP_GSP_VADDR = 0x14000000, | 59 | HEAP_GSP_VADDR = 0x14000000, |
| 67 | HEAP_GSP_VADDR_END = (HEAP_GSP_VADDR + HEAP_GSP_SIZE), | 60 | HEAP_GSP_VADDR_END = (HEAP_GSP_VADDR + HEAP_GSP_SIZE), |
| 68 | HEAP_GSP_PADDR = 0x00000000, | 61 | HEAP_GSP_PADDR = 0x00000000, |
| 69 | HEAP_GSP_PADDR_END = (HEAP_GSP_PADDR + HEAP_GSP_SIZE), | 62 | HEAP_GSP_PADDR_END = (HEAP_GSP_PADDR + HEAP_GSP_SIZE), |
| 70 | HEAP_GSP_MASK = (HEAP_GSP_SIZE - 1), | ||
| 71 | 63 | ||
| 72 | HARDWARE_IO_SIZE = 0x01000000, | 64 | HARDWARE_IO_SIZE = 0x01000000, |
| 73 | HARDWARE_IO_PADDR = 0x10000000, ///< IO physical address start | 65 | HARDWARE_IO_PADDR = 0x10000000, ///< IO physical address start |
| @@ -80,12 +72,10 @@ enum { | |||
| 80 | VRAM_VADDR = 0x1F000000, | 72 | VRAM_VADDR = 0x1F000000, |
| 81 | VRAM_PADDR_END = (VRAM_PADDR + VRAM_SIZE), | 73 | VRAM_PADDR_END = (VRAM_PADDR + VRAM_SIZE), |
| 82 | VRAM_VADDR_END = (VRAM_VADDR + VRAM_SIZE), | 74 | VRAM_VADDR_END = (VRAM_VADDR + VRAM_SIZE), |
| 83 | VRAM_MASK = 0x007FFFFF, | ||
| 84 | 75 | ||
| 85 | SCRATCHPAD_SIZE = 0x00004000, ///< Typical stack size - TODO: Read from exheader | 76 | SCRATCHPAD_SIZE = 0x00004000, ///< Typical stack size - TODO: Read from exheader |
| 86 | SCRATCHPAD_VADDR_END = 0x10000000, | 77 | SCRATCHPAD_VADDR_END = 0x10000000, |
| 87 | SCRATCHPAD_VADDR = (SCRATCHPAD_VADDR_END - SCRATCHPAD_SIZE), ///< Stack space | 78 | SCRATCHPAD_VADDR = (SCRATCHPAD_VADDR_END - SCRATCHPAD_SIZE), ///< Stack space |
| 88 | SCRATCHPAD_MASK = (SCRATCHPAD_SIZE - 1), ///< Scratchpad memory mask | ||
| 89 | }; | 79 | }; |
| 90 | 80 | ||
| 91 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 81 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp index e8747840c..1887bcedb 100644 --- a/src/core/mem_map_funcs.cpp +++ b/src/core/mem_map_funcs.cpp | |||
| @@ -56,7 +56,7 @@ inline void Read(T &var, const VAddr vaddr) { | |||
| 56 | 56 | ||
| 57 | // Kernel memory command buffer | 57 | // Kernel memory command buffer |
| 58 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { | 58 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { |
| 59 | var = *((const T*)&g_kernel_mem[vaddr & KERNEL_MEMORY_MASK]); | 59 | var = *((const T*)&g_kernel_mem[vaddr - KERNEL_MEMORY_VADDR]); |
| 60 | 60 | ||
| 61 | // Hardware I/O register reads | 61 | // Hardware I/O register reads |
| 62 | // 0x10XXXXXX- is physical address space, 0x1EXXXXXX is virtual address space | 62 | // 0x10XXXXXX- is physical address space, 0x1EXXXXXX is virtual address space |
| @@ -65,23 +65,23 @@ inline void Read(T &var, const VAddr vaddr) { | |||
| 65 | 65 | ||
| 66 | // ExeFS:/.code is loaded here | 66 | // ExeFS:/.code is loaded here |
| 67 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { | 67 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { |
| 68 | var = *((const T*)&g_exefs_code[vaddr & EXEFS_CODE_MASK]); | 68 | var = *((const T*)&g_exefs_code[vaddr - EXEFS_CODE_VADDR]); |
| 69 | 69 | ||
| 70 | // FCRAM - GSP heap | 70 | // FCRAM - GSP heap |
| 71 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { | 71 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { |
| 72 | var = *((const T*)&g_heap_gsp[vaddr & HEAP_GSP_MASK]); | 72 | var = *((const T*)&g_heap_gsp[vaddr - HEAP_GSP_VADDR]); |
| 73 | 73 | ||
| 74 | // FCRAM - application heap | 74 | // FCRAM - application heap |
| 75 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { | 75 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { |
| 76 | var = *((const T*)&g_heap[vaddr & HEAP_MASK]); | 76 | var = *((const T*)&g_heap[vaddr - HEAP_VADDR]); |
| 77 | 77 | ||
| 78 | // Shared memory | 78 | // Shared memory |
| 79 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { | 79 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { |
| 80 | var = *((const T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK]); | 80 | var = *((const T*)&g_shared_mem[vaddr - SHARED_MEMORY_VADDR]); |
| 81 | 81 | ||
| 82 | // System memory | 82 | // System memory |
| 83 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { | 83 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { |
| 84 | var = *((const T*)&g_system_mem[vaddr & SYSTEM_MEMORY_MASK]); | 84 | var = *((const T*)&g_system_mem[vaddr - SYSTEM_MEMORY_VADDR]); |
| 85 | 85 | ||
| 86 | // Config memory | 86 | // Config memory |
| 87 | } else if ((vaddr >= CONFIG_MEMORY_VADDR) && (vaddr < CONFIG_MEMORY_VADDR_END)) { | 87 | } else if ((vaddr >= CONFIG_MEMORY_VADDR) && (vaddr < CONFIG_MEMORY_VADDR_END)) { |
| @@ -89,7 +89,7 @@ inline void Read(T &var, const VAddr vaddr) { | |||
| 89 | 89 | ||
| 90 | // VRAM | 90 | // VRAM |
| 91 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { | 91 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { |
| 92 | var = *((const T*)&g_vram[vaddr & VRAM_MASK]); | 92 | var = *((const T*)&g_vram[vaddr - VRAM_VADDR]); |
| 93 | 93 | ||
| 94 | } else { | 94 | } else { |
| 95 | ERROR_LOG(MEMMAP, "unknown Read%lu @ 0x%08X", sizeof(var) * 8, vaddr); | 95 | ERROR_LOG(MEMMAP, "unknown Read%lu @ 0x%08X", sizeof(var) * 8, vaddr); |
| @@ -101,7 +101,7 @@ inline void Write(const VAddr vaddr, const T data) { | |||
| 101 | 101 | ||
| 102 | // Kernel memory command buffer | 102 | // Kernel memory command buffer |
| 103 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { | 103 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { |
| 104 | *(T*)&g_kernel_mem[vaddr & KERNEL_MEMORY_MASK] = data; | 104 | *(T*)&g_kernel_mem[vaddr - KERNEL_MEMORY_VADDR] = data; |
| 105 | 105 | ||
| 106 | // Hardware I/O register writes | 106 | // Hardware I/O register writes |
| 107 | // 0x10XXXXXX- is physical address space, 0x1EXXXXXX is virtual address space | 107 | // 0x10XXXXXX- is physical address space, 0x1EXXXXXX is virtual address space |
| @@ -110,27 +110,27 @@ inline void Write(const VAddr vaddr, const T data) { | |||
| 110 | 110 | ||
| 111 | // ExeFS:/.code is loaded here | 111 | // ExeFS:/.code is loaded here |
| 112 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { | 112 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { |
| 113 | *(T*)&g_exefs_code[vaddr & EXEFS_CODE_MASK] = data; | 113 | *(T*)&g_exefs_code[vaddr - EXEFS_CODE_VADDR] = data; |
| 114 | 114 | ||
| 115 | // FCRAM - GSP heap | 115 | // FCRAM - GSP heap |
| 116 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { | 116 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { |
| 117 | *(T*)&g_heap_gsp[vaddr & HEAP_GSP_MASK] = data; | 117 | *(T*)&g_heap_gsp[vaddr - HEAP_GSP_VADDR] = data; |
| 118 | 118 | ||
| 119 | // FCRAM - application heap | 119 | // FCRAM - application heap |
| 120 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { | 120 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { |
| 121 | *(T*)&g_heap[vaddr & HEAP_MASK] = data; | 121 | *(T*)&g_heap[vaddr - HEAP_VADDR] = data; |
| 122 | 122 | ||
| 123 | // Shared memory | 123 | // Shared memory |
| 124 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { | 124 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { |
| 125 | *(T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK] = data; | 125 | *(T*)&g_shared_mem[vaddr - SHARED_MEMORY_VADDR] = data; |
| 126 | 126 | ||
| 127 | // System memory | 127 | // System memory |
| 128 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { | 128 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { |
| 129 | *(T*)&g_system_mem[vaddr & SYSTEM_MEMORY_MASK] = data; | 129 | *(T*)&g_system_mem[vaddr - SYSTEM_MEMORY_VADDR] = data; |
| 130 | 130 | ||
| 131 | // VRAM | 131 | // VRAM |
| 132 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { | 132 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { |
| 133 | *(T*)&g_vram[vaddr & VRAM_MASK] = data; | 133 | *(T*)&g_vram[vaddr - VRAM_VADDR] = data; |
| 134 | 134 | ||
| 135 | //} else if ((vaddr & 0xFFF00000) == 0x1FF00000) { | 135 | //} else if ((vaddr & 0xFFF00000) == 0x1FF00000) { |
| 136 | // _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory"); | 136 | // _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory"); |
| @@ -148,31 +148,31 @@ inline void Write(const VAddr vaddr, const T data) { | |||
| 148 | u8 *GetPointer(const VAddr vaddr) { | 148 | u8 *GetPointer(const VAddr vaddr) { |
| 149 | // Kernel memory command buffer | 149 | // Kernel memory command buffer |
| 150 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { | 150 | if (vaddr >= KERNEL_MEMORY_VADDR && vaddr < KERNEL_MEMORY_VADDR_END) { |
| 151 | return g_kernel_mem + (vaddr & KERNEL_MEMORY_MASK); | 151 | return g_kernel_mem + (vaddr - KERNEL_MEMORY_VADDR); |
| 152 | 152 | ||
| 153 | // ExeFS:/.code is loaded here | 153 | // ExeFS:/.code is loaded here |
| 154 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { | 154 | } else if ((vaddr >= EXEFS_CODE_VADDR) && (vaddr < EXEFS_CODE_VADDR_END)) { |
| 155 | return g_exefs_code + (vaddr & EXEFS_CODE_MASK); | 155 | return g_exefs_code + (vaddr - EXEFS_CODE_VADDR); |
| 156 | 156 | ||
| 157 | // FCRAM - GSP heap | 157 | // FCRAM - GSP heap |
| 158 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { | 158 | } else if ((vaddr >= HEAP_GSP_VADDR) && (vaddr < HEAP_GSP_VADDR_END)) { |
| 159 | return g_heap_gsp + (vaddr & HEAP_GSP_MASK); | 159 | return g_heap_gsp + (vaddr - HEAP_GSP_VADDR); |
| 160 | 160 | ||
| 161 | // FCRAM - application heap | 161 | // FCRAM - application heap |
| 162 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { | 162 | } else if ((vaddr >= HEAP_VADDR) && (vaddr < HEAP_VADDR_END)) { |
| 163 | return g_heap + (vaddr & HEAP_MASK); | 163 | return g_heap + (vaddr - HEAP_VADDR); |
| 164 | 164 | ||
| 165 | // Shared memory | 165 | // Shared memory |
| 166 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { | 166 | } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { |
| 167 | return g_shared_mem + (vaddr & SHARED_MEMORY_MASK); | 167 | return g_shared_mem + (vaddr - SHARED_MEMORY_VADDR); |
| 168 | 168 | ||
| 169 | // System memory | 169 | // System memory |
| 170 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { | 170 | } else if ((vaddr >= SYSTEM_MEMORY_VADDR) && (vaddr < SYSTEM_MEMORY_VADDR_END)) { |
| 171 | return g_system_mem + (vaddr & SYSTEM_MEMORY_MASK); | 171 | return g_system_mem + (vaddr - SYSTEM_MEMORY_VADDR); |
| 172 | 172 | ||
| 173 | // VRAM | 173 | // VRAM |
| 174 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { | 174 | } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { |
| 175 | return g_vram + (vaddr & VRAM_MASK); | 175 | return g_vram + (vaddr - VRAM_VADDR); |
| 176 | 176 | ||
| 177 | } else { | 177 | } else { |
| 178 | ERROR_LOG(MEMMAP, "unknown GetPointer @ 0x%08x", vaddr); | 178 | ERROR_LOG(MEMMAP, "unknown GetPointer @ 0x%08x", vaddr); |