sgdk
|
00001 00020 #ifndef _MEMORY_H_ 00021 #define _MEMORY_H_ 00022 00023 // asics memory address definitions 00024 #include "memory_base.h" 00025 00030 #define GET_DWORDFROMPBYTE(src) ((src[0] << 24) | (src[1] << 16) | (src[2] << 8) | (src[3] << 0)) 00031 00035 #define GET_DWORDFROMPBYTE_LI(src) ((src[0] << 0) | (src[1] << 8) | (src[2] << 16) | (src[3] << 24)) 00036 00040 #define GET_WORDFROMPBYTE(src) ((src[0] << 8) | (src[1] << 0)) 00041 00045 #define GET_WORDFROMPBYTE_LI(src) ((src[0] << 0) | (src[1] << 8)) 00046 00050 #define GET_DWORDFROMPWORD(src) ((src[0] << 16) | (src[1] << 0)) 00051 00055 #define GET_DWORDFROMPWORD_LI(src) ((src[0] << 0) | (src[1] << 16)) 00056 00057 00062 #define SWAP_u8(x, y) \ 00063 { \ 00064 u8 swp; \ 00065 \ 00066 swp = x; \ 00067 x = y; \ 00068 y = swp; \ 00069 } 00070 00075 #define SWAP_s8(x, y) \ 00076 { \ 00077 s8 swp; \ 00078 \ 00079 swp = x; \ 00080 x = y; \ 00081 y = swp; \ 00082 } 00083 00088 #define SWAP_u16(x, y) \ 00089 { \ 00090 u16 swp; \ 00091 \ 00092 swp = x; \ 00093 x = y; \ 00094 y = swp; \ 00095 } 00096 00101 #define SWAP_s16(x, y) \ 00102 { \ 00103 s16 swp; \ 00104 \ 00105 swp = x; \ 00106 x = y; \ 00107 y = swp; \ 00108 } 00109 00114 #define SWAP_u32(x, y) \ 00115 { \ 00116 u32 swp; \ 00117 \ 00118 swp = x; \ 00119 x = y; \ 00120 y = swp; \ 00121 } 00122 00127 #define SWAP_s32(x, y) \ 00128 { \ 00129 s32 swp; \ 00130 \ 00131 swp = x; \ 00132 x = y; \ 00133 y = swp; \ 00134 } 00135 00136 00137 #if (ENABLE_NEWLIB == 0) 00138 // enable standard libc compatibility 00139 #define malloc(x) MEM_alloc(x) 00140 #define free(x) MEM_free(x) 00141 #endif // ENABLE_NEWLIB 00142 00143 00148 u16 MEM_getFree(void); 00153 u16 MEM_getAllocated(void); 00158 u16 MEM_getLargestFreeBlock(void); 00159 00171 void MEM_free(void *ptr); 00186 void* MEM_alloc(u16 size); 00203 void* MEM_allocAt(u32 addr, u16 size); 00204 00210 void MEM_pack(void); 00217 void MEM_dump(void); 00218 00219 #if (ENABLE_NEWLIB == 0) 00220 00233 void memset(void *to, u8 value, u16 len); 00234 #endif // ENABLE_NEWLIB 00235 00249 void memsetU16(u16 *to, u16 value, u16 len); 00263 void memsetU32(u32 *to, u32 value, u16 len); 00264 00265 #if (ENABLE_NEWLIB == 0) 00266 00280 void memcpy(void *to, const void *from, u16 len); 00281 #endif // ENABLE_NEWLIB 00282 00286 #define memcpyU16(to, from, len) _Pragma("GCC error \"This method is deprecated, use memcpy(..) instead.\"") 00287 00290 #define memcpyU32(to, from, len) _Pragma("GCC error \"This method is deprecated, use memcpy(..) instead.\"") 00291 00294 #define fastMemset(to, value, len) _Pragma("GCC error \"This method is deprecated, use memset(..) instead.\"") 00295 00298 #define fastMemsetU16(to, value, len) _Pragma("GCC error \"This method is deprecated, use memsetU16(..) instead.\"") 00299 00302 #define fastMemsetU32(to, value, len) _Pragma("GCC error \"This method is deprecated, use memsetU32(..) instead.\"") 00303 00306 #define astMemcpy(to, from, len) _Pragma("GCC error \"This method is deprecated, use memcpy(..) instead.\"") 00307 00310 #define fastMemcpyU16(to, from, len) _Pragma("GCC error \"This method is deprecated, use memcpy(..) instead.\"") 00311 00314 #define fastMemcpyU32(to, from, len) _Pragma("GCC error \"This method is deprecated, use memcpy(..) instead.\"") 00315 00316 00317 #endif // _MEMORY_H_