#include #include #include #include #define ALIGN(x, a) (((x) + (a) - 1) & ~(((typeof(x))(a) - 1))) void *mymalloc(size_t size) { if (!size) return NULL; return sbrk(ALIGN(size, sizeof(long))); } void *mycalloc(size_t nmemb, size_t size) { void *ptr; size_t sz = nmemb * size; ptr = mymalloc(sz); if (ptr) memset(ptr, 0, sz); return ptr; } void myfree(void *ptr) { (void)ptr; } void *myrealloc(void *ptr, size_t size) { void *newptr; if (!ptr || !size) return NULL; newptr = mymalloc(size); if (newptr) memcpy(newptr, ptr, size); return newptr ?: ptr; } #if 0 void *malloc(size_t size) { return mymalloc(size); } void *calloc(size_t nmemb, size_t size) { return mycalloc(nmemb, size); } void *realloc(void *ptr, size_t size) { return myrealloc(ptr, size); } void free(void *ptr) { myfree(ptr); } #endif