From d385ed29b94af71dedeb5f44d72ad8dab43c4664 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 21 May 2009 10:02:52 +0000 Subject: This change adds PPC support to libpayload, and hooks it up in the build process. The PPC support is still stubbed, with commented out x86 code as guide line for an implementor. Signed-off-by: Patrick Georgi Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4293 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- payloads/libpayload/libc/malloc.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'payloads/libpayload/libc/malloc.c') diff --git a/payloads/libpayload/libc/malloc.c b/payloads/libpayload/libc/malloc.c index 24daf0e680..d18b289adf 100644 --- a/payloads/libpayload/libc/malloc.c +++ b/payloads/libpayload/libc/malloc.c @@ -103,16 +103,22 @@ static void *alloc(int len) void *nptr = ptr + (HDRSIZE + len); int nsize = size - (HDRSIZE + len); - /* Mark the block as used. */ - *((hdrtype_t *) ptr) = USED_BLOCK(len); - /* If there is still room in this block, - * then mark it as such. + * then mark it as such otherwise account + * the whole space for that block. */ - if (nsize > 0) + if (nsize > 0) { + /* Mark the block as used. */ + *((hdrtype_t *) ptr) = USED_BLOCK(len); + + /* Create a new free block. */ *((hdrtype_t *) nptr) = FREE_BLOCK(nsize); + } else { + /* Mark the block as used. */ + *((hdrtype_t *) ptr) = USED_BLOCK(size); + } return (void *)(ptr + HDRSIZE); } -- cgit v1.2.3