diff options
author | Tom Rini <trini@ti.com> | 2014-11-24 17:01:48 (GMT) |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-11-24 17:01:48 (GMT) |
commit | 1739564e753bc3a8097f8937a3cbe738bdaaed5d (patch) | |
tree | 56fe759e62f129dc055b6f6a22f299f6c8b5cdde /common/malloc_simple.c | |
parent | 746667f1e56bf08d03e66a178df3c4f4f6c806e1 (diff) | |
parent | 17b28edb37a33d0c89089faf36e4edd7084f65fa (diff) | |
download | u-boot-fsl-qoriq-1739564e753bc3a8097f8937a3cbe738bdaaed5d.tar.xz |
Merge git://git.denx.de/u-boot-dm
Conflicts:
drivers/serial/serial-uclass.c
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'common/malloc_simple.c')
-rw-r--r-- | common/malloc_simple.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/common/malloc_simple.c b/common/malloc_simple.c new file mode 100644 index 0000000..afdacff --- /dev/null +++ b/common/malloc_simple.c @@ -0,0 +1,39 @@ +/* + * Simple malloc implementation + * + * Copyright (c) 2014 Google, Inc + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <malloc.h> +#include <asm/io.h> + +DECLARE_GLOBAL_DATA_PTR; + +void *malloc_simple(size_t bytes) +{ + ulong new_ptr; + void *ptr; + + new_ptr = gd->malloc_ptr + bytes; + if (new_ptr > gd->malloc_limit) + panic("Out of pre-reloc memory"); + ptr = map_sysmem(gd->malloc_base + gd->malloc_ptr, bytes); + gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr)); + return ptr; +} + +#ifdef CONFIG_SYS_MALLOC_SIMPLE +void *calloc(size_t nmemb, size_t elem_size) +{ + size_t size = nmemb * elem_size; + void *ptr; + + ptr = malloc(size); + memset(ptr, '\0', size); + + return ptr; +} +#endif |