From f331936969552c9864e8ef58ec329e7060a5af60 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sat, 6 May 2017 22:29:08 -0400 Subject: basecmd: Avoid calling malloc() from main code Introduce a new board function alloc_chunk() to allocate dynamic memory. This allows the board code to implement memory allocations without using the standard malloc() interface. Signed-off-by: Kevin O'Connor --- src/generic/alloc.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/generic/alloc.c') diff --git a/src/generic/alloc.c b/src/generic/alloc.c index 826e4f9e..37de4d6a 100644 --- a/src/generic/alloc.c +++ b/src/generic/alloc.c @@ -1,13 +1,37 @@ // Dummy implementation for alloc commands // -// Copyright (C) 2016 Kevin O'Connor +// Copyright (C) 2016,2017 Kevin O'Connor // // This file may be distributed under the terms of the GNU GPLv3 license. -#include "misc.h" +#include // malloc +#include // memset +#include "command.h" // shutdown +#include "misc.h" // alloc_chunk +#include "sched.h" // sched_shutdown // Return the maximum allocation size that can succeed up to 'reqsize' -size_t alloc_maxsize(size_t reqsize) +size_t +alloc_chunk_maxsize(size_t reqsize) { return reqsize; } + +// Allocate an area of memory +void * +alloc_chunk(size_t size) +{ + void *data = malloc(size); + if (!data) + shutdown("alloc_chunk failed"); + memset(data, 0, size); + return data; +} + +// Allocate an array of chunks +void * +alloc_chunks(size_t size, size_t count, size_t *avail) +{ + *avail = count; + return alloc_chunk(size * count); +} -- cgit v1.2.3-70-g09d2