Add a simple version of memalign()
This is used when the full malloc() is not available. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
e9fc058314
commit
b6bfb6ff9a
|
@ -26,6 +26,20 @@ void *malloc_simple(size_t bytes)
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *memalign_simple(size_t align, size_t bytes)
|
||||||
|
{
|
||||||
|
ulong addr, new_ptr;
|
||||||
|
void *ptr;
|
||||||
|
|
||||||
|
addr = ALIGN(gd->malloc_base + gd->malloc_ptr, bytes);
|
||||||
|
new_ptr = addr + bytes;
|
||||||
|
if (new_ptr > gd->malloc_limit)
|
||||||
|
return NULL;
|
||||||
|
ptr = map_sysmem(addr, bytes);
|
||||||
|
gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr));
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_MALLOC_SIMPLE
|
#ifdef CONFIG_SYS_MALLOC_SIMPLE
|
||||||
void *calloc(size_t nmemb, size_t elem_size)
|
void *calloc(size_t nmemb, size_t elem_size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue