#ifndef MEMORY_H #define MEMORY_H #define MEMZERO_STRUCT(ptr) MEMZERO((ptr), sizeof(*(ptr))) #define MEMZERO_ARRAY(a) MEMZERO((a), sizeof((a))) #define MEMZERO(ptr, count) MEMSET((ptr), 0, (count)) #define MEMCPY_STRUCT(ptr_dst, ptr_src) MEMCPY((ptr_dst), (ptr_src), sizeof(*(ptr_dst))); #define MEMCPY(dst, src, count) memcpy((dst), (src), (count)) #define MEMCMP_STRUCT(p1, p2) MEMCMP((p1), (p2), sizeof(*p1)) #define MEMCMP(p1, p2, n) memcmp((p1), (p2), (n)) #define MEMEQ_STRUCT(p1, p2) MEMEQ((p1), (p2), sizeof(*p1)) #define MEMEQ(p1, p2, n) (MEMCMP((p1), (p2), (n)) == 0) #define MEMSET(ptr, val, count) memset((ptr), (val), (count)) #if CRTLIB # include #else void *memcpy(void *__restrict dst, const void *__restrict src, u64 n); void *memset(void *dst, i32 c, u64 n); i32 memcmp(const void *p1, const void *p2, u64 n); #endif #endif