diff options
Diffstat (limited to 'common/dummy_malloc.c')
-rw-r--r-- | common/dummy_malloc.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/common/dummy_malloc.c b/common/dummy_malloc.c index 641baa125a..0120d9be2e 100644 --- a/common/dummy_malloc.c +++ b/common/dummy_malloc.c @@ -30,11 +30,14 @@ void malloc_stats(void) void *memalign(size_t alignment, size_t bytes) { - unsigned long mem = (unsigned long)sbrk(bytes + alignment); + void *mem = sbrk(bytes + alignment); - mem = (mem + alignment) & ~(alignment - 1); + if (!mem) { + errno = ENOMEM; + return NULL; + } - return (void *)mem; + return PTR_ALIGN(mem, alignment); } void *malloc(size_t size) @@ -50,16 +53,3 @@ void *realloc(void *ptr, size_t size) { BUG(); } - -void *calloc(size_t n, size_t elem_size) -{ - size_t size = elem_size * n; - void *r = malloc(size); - - if (!r) - return r; - - memset(r, 0x0, size); - - return r; -} |