sgdk
memory.h
Go to the documentation of this file.
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_
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines