1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: os_MemoryTypes.h 4 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 $Rev: 32444 $ 11 *--------------------------------------------------------------------------- 12 13 14 */ 15 /* Please see man pages for details 16 17 18 19 */ 20 #ifndef NN_OS_OS_MEMORYTYPES_H_ 21 #define NN_OS_OS_MEMORYTYPES_H_ 22 23 #include <nn/types.h> 24 25 #ifdef __cplusplus 26 27 namespace nn { namespace os { 28 29 /* 30 31 32 33 */ 34 enum MemoryState 35 { 36 MEMORY_STATE_FREE, 37 MEMORY_STATE_RESERVED, 38 MEMORY_STATE_IO, 39 MEMORY_STATE_STATIC, 40 MEMORY_STATE_CODE, 41 MEMORY_STATE_PRIVATE, 42 MEMORY_STATE_SHARED, 43 MEMORY_STATE_CONTINUOUS, 44 MEMORY_STATE_ALIASED, 45 MEMORY_STATE_ALIAS, 46 MEMORY_STATE_ALIAS_CODE, 47 MEMORY_STATE_LOCKED, 48 49 MEMORY_STATE_MAX_BITS = (1u << 31) 50 }; 51 52 /* 53 54 55 56 */ 57 enum PageFlag 58 { 59 MEMORY_FLAG_LOCKED = (1u << 0), // 60 MEMORY_FLAG_STATE_CHANGED = (1u << 1) // 61 }; 62 63 const int ALLOCATE_OPTION_LINEAR = 0x1u << 8; // 64 65 /* 66 67 68 69 */ 70 enum MemoryOperation 71 { 72 MEMORY_OPERATION_FREE = (1 << 0), // 73 MEMORY_OPERATION_RESERVE = (2 << 0), // 74 MEMORY_OPERATION_COMMIT = (3 << 0), // 75 MEMORY_OPERATION_MAP = (4 << 0), // 76 MEMORY_OPERATION_UNMAP = (5 << 0), // 77 MEMORY_OPERATION_PROTECT = (6 << 0), // 78 79 MEMORY_OPERATION_REGION_APP = (1 << 8), // 80 MEMORY_OPERATION_REGION_SYSTEM = (2 << 8), // 81 MEMORY_OPERATION_REGION_BASE = (3 << 8), // 82 83 MEMORY_OPERATION_MASK = (0xFFu << 0), // 84 MEMORY_OPERATION_REGION_MASK = (0xFu << 8), // 85 MEMORY_OPERATION_FLAG_LINEAR = (0x1u << 16), // 86 87 MEMORY_OPERATION_MAX_BITS = (1u << 31) 88 }; 89 90 /* 91 92 93 94 */ 95 enum MemoryPermission 96 { 97 MEMORY_PERMISSION_NONE = 0, // 98 MEMORY_PERMISSION_READ = (1u << 0), // 99 MEMORY_PERMISSION_WRITE = (1u << 1), // 100 MEMORY_PERMISSION_READ_WRITE = (MEMORY_PERMISSION_READ | MEMORY_PERMISSION_WRITE), // 101 102 MEMORY_PERMISSION_DONT_CARE = (1u << 28), 103 MEMORY_PERMISSION_MAX_BITS = (1u << 31) 104 }; 105 106 }} 107 108 #endif // __cplusplus 109 110 #endif /* NN_OS_OS_MEMORYTYPES_H_ */ 111