| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // Copyright 2014 Citra Emulator Project
- // Licensed under GPLv2 or any later version
- // Refer to the license.txt file included.
- #pragma once
- #include "common/common_types.h"
- namespace Memory {
- extern u8* g_exefs_code; ///< ExeFS:/.code is loaded here
- extern u8* g_heap; ///< Application heap (main memory)
- extern u8* g_shared_mem; ///< Shared memory
- extern u8* g_heap_linear; ///< Linear heap (main memory)
- extern u8* g_vram; ///< Video memory (VRAM)
- extern u8* g_dsp_mem; ///< DSP memory
- extern u8* g_tls_mem; ///< TLS memory
- void Init();
- void Shutdown();
- /**
- * Maps a block of memory on the heap
- * @param size Size of block in bytes
- * @param operation Memory map operation type
- * @param permissions Memory allocation permissions
- */
- u32 MapBlock_Heap(u32 size, u32 operation, u32 permissions);
- /**
- * Maps a block of memory on the GSP heap
- * @param size Size of block in bytes
- * @param operation Memory map operation type
- * @param permissions Control memory permissions
- */
- u32 MapBlock_HeapLinear(u32 size, u32 operation, u32 permissions);
- /**
- * Converts a virtual address inside a region with 1:1 mapping to physical memory to a physical
- * address. This should be used by services to translate addresses for use by the hardware.
- */
- PAddr VirtualToPhysicalAddress(VAddr addr);
- /**
- * Undoes a mapping performed by VirtualToPhysicalAddress().
- */
- VAddr PhysicalToVirtualAddress(PAddr addr);
- } // namespace
|