diff options
| author | 2014-04-24 22:32:26 -0400 | |
|---|---|---|
| committer | 2014-04-24 22:32:26 -0400 | |
| commit | b7cd4c9e90be42476a2e242571d36cbbca2fbd4c (patch) | |
| tree | ded61f0cc1b93a96226a849388348feca591cfa5 /src/core/mem_map.h | |
| parent | added GSP::RegisterInterruptRelayQueue function (diff) | |
| download | yuzu-b7cd4c9e90be42476a2e242571d36cbbca2fbd4c.tar.gz yuzu-b7cd4c9e90be42476a2e242571d36cbbca2fbd4c.tar.xz yuzu-b7cd4c9e90be42476a2e242571d36cbbca2fbd4c.zip | |
added functions to map Heap and Shared memory space
Diffstat (limited to 'src/core/mem_map.h')
| -rw-r--r-- | src/core/mem_map.h | 27 |
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 |
| 53 | struct HeapBlock { | 55 | struct 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); | |||
| 99 | u8* GetPointer(const u32 Address); | 102 | u8* 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 | */ | ||
| 110 | u32 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 | */ | ||
| 118 | u32 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 | */ |
| 107 | u32 MapBlock_HeapGSP(u32 size, u32 operation, u32 permissions); | 126 | u32 MapBlock_HeapGSP(u32 size, u32 operation, u32 permissions); |