1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: os_Memory.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. 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 $Rev: 38846 $ 14 *---------------------------------------------------------------------------*/ 15 16 /* Please see man pages for details 17 18 19 20 */ 21 22 #ifndef NN_OS_OS_MEMORY_H_ 23 #define NN_OS_OS_MEMORY_H_ 24 25 #include <nn/types.h> 26 #include <nn/Handle.h> 27 #include <nn/svc.h> 28 #include <nn/os/CTR/os_MemoryConfig.h> 29 30 #ifdef __cplusplus 31 32 #include <nn/util/util_NonCopyable.h> 33 #include <nn/os/os_SvcTypes.autogen.h> 34 #include <nn/util/util_Result.h> 35 36 #define NN_OS_DEVICE_MEMORY_SIZE (32 * 1024 * 1024) // 32MB 37 38 namespace nn{ namespace os{ 39 40 /* Please see man pages for details 41 42 43 44 45 46 */ 47 const size_t DEVICE_MEMORY_SIZE NN_ATTRIBUTE_DEPRECATED = NN_OS_DEVICE_MEMORY_SIZE; 48 49 /* Please see man pages for details 50 51 52 53 54 */ 55 void InitializeDeviceMemory() NN_ATTRIBUTE_DEPRECATED; 56 57 /* 58 59 60 61 62 63 64 65 66 67 68 69 70 71 */ 72 void SetupHeapForMemoryBlock(size_t heapSize); 73 74 75 76 77 /* 78 79 80 81 82 83 84 85 */ 86 uptr GetDeviceMemoryAddress(); 87 88 89 90 /* 91 92 93 94 95 96 97 98 99 100 */ 101 Result SetDeviceMemorySize(size_t size); 102 103 104 105 /* 106 107 108 109 110 */ 111 size_t GetDeviceMemorySize(); 112 113 114 115 /* 116 117 118 119 120 121 122 123 */ GetHeapAddress()124inline uptr GetHeapAddress() { return NN_OS_ADDR_HEAP_BEGIN; } 125 126 127 128 /* 129 130 131 132 133 134 135 136 */ 137 Result SetHeapSize(size_t size); 138 139 140 141 /* 142 143 144 145 146 */ 147 size_t GetHeapSize(); 148 149 150 151 }} // namespace nn::os 152 153 #endif // __cplusplus 154 155 // Below is the C declaration 156 157 #include <nn/util/detail/util_CLibImpl.h> 158 159 /* Please see man pages for details 160 161 162 */ 163 164 /* Please see man pages for details 165 166 */ 167 NN_EXTERN_C void nnosInitializeDeviceMemory(void); 168 169 /* Please see man pages for details 170 171 */ 172 NN_EXTERN_C uptr nnosGetDeviceMemoryAddress(void); 173 174 /* 175 176 */ 177 178 /* NN_OS_MEMORY_H_ */ 179 #endif /* NN_OS_OS_MEMORY_H_ */ 180