summaryrefslogtreecommitdiff
path: root/src/core/mem_map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/mem_map.h')
-rw-r--r--src/core/mem_map.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/core/mem_map.h b/src/core/mem_map.h
index ab1eb2606..5346d04ee 100644
--- a/src/core/mem_map.h
+++ b/src/core/mem_map.h
@@ -22,6 +22,8 @@ enum {
22 HEAP_GSP_SIZE = 0x02000000, ///< GSP heap size... TODO: Define correctly? 22 HEAP_GSP_SIZE = 0x02000000, ///< GSP heap size... TODO: Define correctly?
23 HEAP_SIZE = FCRAM_SIZE, ///< Application heap size 23 HEAP_SIZE = FCRAM_SIZE, ///< Application heap size
24 24
25 SHARED_MEMORY_VADDR = 0x10000000, ///< Shared memory
26
25 HEAP_PADDR = HEAP_GSP_SIZE, 27 HEAP_PADDR = HEAP_GSP_SIZE,
26 HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE), 28 HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE),
27 HEAP_VADDR = 0x08000000, 29 HEAP_VADDR = 0x08000000,
@@ -49,10 +51,11 @@ enum {
49 51
50//////////////////////////////////////////////////////////////////////////////////////////////////// 52////////////////////////////////////////////////////////////////////////////////////////////////////
51 53
52/// Represents a block of heap memory mapped by ControlMemory 54/// Represents a block of memory mapped by ControlMemory/MapMemoryBlock
53struct HeapBlock { 55struct MemoryBlock {
54 HeapBlock() : base_address(0), address(0), size(0), operation(0), permissions(0) { 56 MemoryBlock() : handle(0), base_address(0), address(0), size(0), operation(0), permissions(0) {
55 } 57 }
58 u32 handle;
56 u32 base_address; 59 u32 base_address;
57 u32 address; 60 u32 address;
58 u32 size; 61 u32 size;
@@ -99,9 +102,25 @@ void Write32(const u32 addr, const u32 data);
99u8* GetPointer(const u32 Address); 102u8* GetPointer(const u32 Address);
100 103
101/** 104/**
105 * Maps a block of memory in shared memory
106 * @param handle Handle to map memory block for
107 * @param addr Address to map memory block to
108 * @param permissions Memory map permissions
109 */
110u32 MapBlock_Shared(u32 handle, u32 addr,u32 permissions) ;
111
112/**
113 * Maps a block of memory on the heap
114 * @param size Size of block in bytes
115 * @param operation Memory map operation type
116 * @param flags Memory allocation flags
117 */
118u32 MapBlock_Heap(u32 size, u32 operation, u32 permissions);
119
120/**
102 * Maps a block of memory on the GSP heap 121 * Maps a block of memory on the GSP heap
103 * @param size Size of block in bytes 122 * @param size Size of block in bytes
104 * @param operation Control memory operation 123 * @param operation Memory map operation type
105 * @param permissions Control memory permissions 124 * @param permissions Control memory permissions
106 */ 125 */
107u32 MapBlock_HeapGSP(u32 size, u32 operation, u32 permissions); 126u32 MapBlock_HeapGSP(u32 size, u32 operation, u32 permissions);