17 typedef size_t SIZE_T;
29 template<
typename T32BITS,
typename T64BITS,
int Po
interSize>
41 template<
typename T32BITS,
typename T64BITS>
45 typedef T64BITS TIntPointer;
54 template<
typename T32BITS,
typename T64BITS>
58 typedef T32BITS TIntPointer;
109 return memmove(Dest, Src, Count);
124 return memcmp(Buf1, Buf2, Count);
139 return memset(Dest, Char, Count);
152 return memset(Dest, 0, Count);
169 return memcpy(Dest, Src, Count);
186 return memcpy(Dest, Src, Count);
203 return memcpy(Dest, Src, Count);
219 return memcpy(Dest, Src, Count);
231 template <
typename T>
254 static void MemswapGreaterThan8(
void* Ptr1,
void* Ptr2, SIZE_T Size);
258 static inline void Memswap(
void* Ptr1,
void* Ptr2, SIZE_T Size)
266 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
270 Valswap(*(uint16_t*)Ptr1, *(uint16_t*)Ptr2);
274 Valswap(*((uint16_t*&)Ptr1)++, *((uint16_t*&)Ptr2)++);
275 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
279 Valswap(*(uint32_t*)Ptr1, *(uint32_t*)Ptr2);
283 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
284 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
288 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
289 Valswap(*(uint16_t*)Ptr1, *(uint16_t*)Ptr2);
293 Valswap(*((uint32_t*&)Ptr1)++, *((uint32_t*&)Ptr2)++);
294 Valswap(*((uint16_t*&)Ptr1)++, *((uint16_t*&)Ptr2)++);
295 Valswap(*(uint8_t*)Ptr1, *(uint8_t*)Ptr2);
299 Valswap(*(uint64_t*)Ptr1, *(uint64_t*)Ptr2);
303 Valswap(((uint64_t*)Ptr1)[0], ((uint64_t*)Ptr2)[0]);
304 Valswap(((uint64_t*)Ptr1)[1], ((uint64_t*)Ptr2)[1]);
308 MemswapGreaterThan8(Ptr1, Ptr2, Size);
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
#define FORCEINLINE
Typical inlining macro for clarity.
Definition Core.h:157
Defaulter for sized different from 4 and 8. Meaning not supporting 16 bit systems.
Definition GenericPlatformMemory.h:31