1 /*---------------------------------------------------------------------------* 2 Project: Cafe 3 File: OSMemmap.h 4 5 Copyright (C) Nintendo. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 *---------------------------------------------------------------------------*/ 14 15 #ifndef __OS_MEMMAP_H__ 16 #define __OS_MEMMAP_H__ 17 18 #include <types.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 #define OS_MAP_INVALID 0 25 #define OS_MAP_RO 1 26 #define OS_MAP_RW 2 27 #define OS_MAP_FREE 3 28 #define OS_MAP_ALLOCATED 4 29 30 typedef u32 va_t; 31 typedef u32 pa_t; 32 33 #define OSGetPageSize() (128 * 1024) 34 35 va_t OSAllocVirtAddr(va_t va, size_t size, size_t align); 36 BOOL OSFreeVirtAddr(va_t va, size_t size); 37 int OSQueryVirtAddr(va_t va); 38 void OSGetMapVirtAddrRange(va_t *va, size_t *size); 39 void OSGetDataPhysAddrRange(pa_t *datapa, size_t *datasize); 40 void OSGetAvailPhysAddrRange(pa_t *availpa, size_t *availsize); 41 BOOL OSMapMemory(va_t va, pa_t pa, size_t size, int mode); 42 BOOL OSUnmapMemory(va_t va, size_t size); 43 44 #ifdef __cplusplus 45 } 46 #endif 47 48 #endif // __OS_MEMMAP_H__ 49 50