1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #include <alloc.h> 3 #include <bitops.h> 4 #include <asm/page.h> 5 #include <linux/compiler.h> 6 malloc(size_t size)7void *malloc(size_t size) 8 { 9 return memalign(sizeof(long), size); 10 } 11 calloc(size_t nmemb,size_t size)12void *calloc(size_t nmemb, size_t size) 13 { 14 void *ptr; 15 16 assert(!check_mul_overflow(nmemb, size)); 17 ptr = malloc(nmemb * size); 18 if (ptr) 19 memset(ptr, 0, nmemb * size); 20 return ptr; 21 } 22 free(void * ptr)23void free(void *ptr) 24 { 25 if (alloc_ops->free) 26 alloc_ops->free(ptr); 27 } 28 memalign(size_t alignment,size_t size)29void *memalign(size_t alignment, size_t size) 30 { 31 void *p; 32 33 if (!size) 34 return NULL; 35 36 assert(is_power_of_2(alignment)); 37 assert(alloc_ops && alloc_ops->memalign); 38 39 p = alloc_ops->memalign(alignment, size); 40 assert(p); 41 42 return (void *)p; 43 } 44