diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/mem_map.cpp | 31 | ||||
| -rw-r--r-- | src/core/mem_map.h | 8 |
2 files changed, 8 insertions, 31 deletions
diff --git a/src/core/mem_map.cpp b/src/core/mem_map.cpp index 66d95ed27..bf814b945 100644 --- a/src/core/mem_map.cpp +++ b/src/core/mem_map.cpp | |||
| @@ -21,18 +21,9 @@ | |||
| 21 | 21 | ||
| 22 | namespace Memory { | 22 | namespace Memory { |
| 23 | 23 | ||
| 24 | u8* g_exefs_code; ///< ExeFS:/.code is loaded here | ||
| 25 | u8* g_heap; ///< Application heap (main memory) | ||
| 26 | u8* g_shared_mem; ///< Shared memory | ||
| 27 | u8* g_heap_linear; ///< Linear heap | ||
| 28 | u8* g_vram; ///< Video memory (VRAM) pointer | ||
| 29 | u8* g_dsp_mem; ///< DSP memory | ||
| 30 | u8* g_tls_mem; ///< TLS memory | ||
| 31 | |||
| 32 | namespace { | 24 | namespace { |
| 33 | 25 | ||
| 34 | struct MemoryArea { | 26 | struct MemoryArea { |
| 35 | u8** ptr; | ||
| 36 | u32 base; | 27 | u32 base; |
| 37 | u32 size; | 28 | u32 size; |
| 38 | const char* name; | 29 | const char* name; |
| @@ -40,13 +31,13 @@ struct MemoryArea { | |||
| 40 | 31 | ||
| 41 | // We don't declare the IO regions in here since its handled by other means. | 32 | // We don't declare the IO regions in here since its handled by other means. |
| 42 | static MemoryArea memory_areas[] = { | 33 | static MemoryArea memory_areas[] = { |
| 43 | {&g_exefs_code, PROCESS_IMAGE_VADDR, PROCESS_IMAGE_MAX_SIZE, "Process Image"}, | 34 | {PROCESS_IMAGE_VADDR, PROCESS_IMAGE_MAX_SIZE, "Process Image"}, // ExeFS:/.code is loaded here |
| 44 | {&g_heap, HEAP_VADDR, HEAP_SIZE, "Heap"}, | 35 | {HEAP_VADDR, HEAP_SIZE, "Heap"}, // Application heap (main memory) |
| 45 | {&g_shared_mem, SHARED_MEMORY_VADDR, SHARED_MEMORY_SIZE, "Shared Memory"}, | 36 | {SHARED_MEMORY_VADDR, SHARED_MEMORY_SIZE, "Shared Memory"}, // Shared memory |
| 46 | {&g_heap_linear, LINEAR_HEAP_VADDR, LINEAR_HEAP_SIZE, "Linear Heap"}, | 37 | {LINEAR_HEAP_VADDR, LINEAR_HEAP_SIZE, "Linear Heap"}, // Linear heap (main memory) |
| 47 | {&g_vram, VRAM_VADDR, VRAM_SIZE, "VRAM"}, | 38 | {VRAM_VADDR, VRAM_SIZE, "VRAM"}, // Video memory (VRAM) |
| 48 | {&g_dsp_mem, DSP_RAM_VADDR, DSP_RAM_SIZE, "DSP RAM"}, | 39 | {DSP_RAM_VADDR, DSP_RAM_SIZE, "DSP RAM"}, // DSP memory |
| 49 | {&g_tls_mem, TLS_AREA_VADDR, TLS_AREA_SIZE, "TLS Area"}, | 40 | {TLS_AREA_VADDR, TLS_AREA_SIZE, "TLS Area"}, // TLS memory |
| 50 | }; | 41 | }; |
| 51 | 42 | ||
| 52 | /// Represents a block of memory mapped by ControlMemory/MapMemoryBlock | 43 | /// Represents a block of memory mapped by ControlMemory/MapMemoryBlock |
| @@ -150,7 +141,6 @@ void Init() { | |||
| 150 | 141 | ||
| 151 | for (MemoryArea& area : memory_areas) { | 142 | for (MemoryArea& area : memory_areas) { |
| 152 | auto block = std::make_shared<std::vector<u8>>(area.size); | 143 | auto block = std::make_shared<std::vector<u8>>(area.size); |
| 153 | *area.ptr = block->data(); // TODO(yuriks): Remove | ||
| 154 | address_space.MapMemoryBlock(area.base, std::move(block), 0, area.size, MemoryState::Private).Unwrap(); | 144 | address_space.MapMemoryBlock(area.base, std::move(block), 0, area.size, MemoryState::Private).Unwrap(); |
| 155 | } | 145 | } |
| 156 | 146 | ||
| @@ -162,19 +152,14 @@ void Init() { | |||
| 162 | (u8*)&SharedPage::shared_page, SHARED_PAGE_SIZE, MemoryState::Shared).MoveFrom(); | 152 | (u8*)&SharedPage::shared_page, SHARED_PAGE_SIZE, MemoryState::Shared).MoveFrom(); |
| 163 | address_space.Reprotect(shared_page_vma, VMAPermission::Read); | 153 | address_space.Reprotect(shared_page_vma, VMAPermission::Read); |
| 164 | 154 | ||
| 165 | LOG_DEBUG(HW_Memory, "initialized OK, RAM at %p", g_heap); | 155 | LOG_DEBUG(HW_Memory, "initialized OK"); |
| 166 | } | 156 | } |
| 167 | 157 | ||
| 168 | void Shutdown() { | 158 | void Shutdown() { |
| 169 | heap_map.clear(); | 159 | heap_map.clear(); |
| 170 | heap_linear_map.clear(); | 160 | heap_linear_map.clear(); |
| 171 | |||
| 172 | address_space.Reset(); | 161 | address_space.Reset(); |
| 173 | 162 | ||
| 174 | for (MemoryArea& area : memory_areas) { | ||
| 175 | *area.ptr = nullptr; | ||
| 176 | } | ||
| 177 | |||
| 178 | LOG_DEBUG(HW_Memory, "shutdown OK"); | 163 | LOG_DEBUG(HW_Memory, "shutdown OK"); |
| 179 | } | 164 | } |
| 180 | 165 | ||
diff --git a/src/core/mem_map.h b/src/core/mem_map.h index 945815cd6..ba50914a8 100644 --- a/src/core/mem_map.h +++ b/src/core/mem_map.h | |||
| @@ -8,14 +8,6 @@ | |||
| 8 | 8 | ||
| 9 | namespace Memory { | 9 | namespace Memory { |
| 10 | 10 | ||
| 11 | extern u8* g_exefs_code; ///< ExeFS:/.code is loaded here | ||
| 12 | extern u8* g_heap; ///< Application heap (main memory) | ||
| 13 | extern u8* g_shared_mem; ///< Shared memory | ||
| 14 | extern u8* g_heap_linear; ///< Linear heap (main memory) | ||
| 15 | extern u8* g_vram; ///< Video memory (VRAM) | ||
| 16 | extern u8* g_dsp_mem; ///< DSP memory | ||
| 17 | extern u8* g_tls_mem; ///< TLS memory | ||
| 18 | |||
| 19 | void Init(); | 11 | void Init(); |
| 20 | void Shutdown(); | 12 | void Shutdown(); |
| 21 | 13 | ||