From 8406115834d38bb743e01f35bfd36e835532415e Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 19 Apr 2010 20:16:01 +0100 Subject: [build] Rename gPXE to iPXE Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown --- src/include/ipxe/malloc.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/include/ipxe/malloc.h (limited to 'src/include/ipxe/malloc.h') diff --git a/src/include/ipxe/malloc.h b/src/include/ipxe/malloc.h new file mode 100644 index 00000000..a1b656c8 --- /dev/null +++ b/src/include/ipxe/malloc.h @@ -0,0 +1,59 @@ +#ifndef _IPXE_MALLOC_H +#define _IPXE_MALLOC_H + +#include + +/** @file + * + * Dynamic memory allocation + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +/* + * Prototypes for the standard functions (malloc() et al) are in + * stdlib.h. Include only if you need the + * non-standard functions, such as malloc_dma(). + * + */ +#include + +extern size_t freemem; + +extern void * __malloc alloc_memblock ( size_t size, size_t align ); +extern void free_memblock ( void *ptr, size_t size ); +extern void mpopulate ( void *start, size_t len ); +extern void mdumpfree ( void ); + +/** + * Allocate memory for DMA + * + * @v size Requested size + * @v align Physical alignment + * @ret ptr Memory, or NULL + * + * Allocates physically-aligned memory for DMA. + * + * @c align must be a power of two. @c size may not be zero. + */ +static inline void * __malloc malloc_dma ( size_t size, size_t phys_align ) { + return alloc_memblock ( size, phys_align ); +} + +/** + * Free memory allocated with malloc_dma() + * + * @v ptr Memory allocated by malloc_dma(), or NULL + * @v size Size of memory, as passed to malloc_dma() + * + * Memory allocated with malloc_dma() can only be freed with + * free_dma(); it cannot be freed with the standard free(). + * + * If @c ptr is NULL, no action is taken. + */ +static inline void free_dma ( void *ptr, size_t size ) { + free_memblock ( ptr, size ); +} + +#endif /* _IPXE_MALLOC_H */ -- cgit v1.2.3-55-g7522