From 89376b7141edb6f927fb940c27391cda6e67c785 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 19 Feb 2009 19:55:40 +0000 Subject: Initial import. --- bsd_eth_drivers/libbsdport/contigmalloc.c | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 bsd_eth_drivers/libbsdport/contigmalloc.c (limited to 'bsd_eth_drivers/libbsdport/contigmalloc.c') diff --git a/bsd_eth_drivers/libbsdport/contigmalloc.c b/bsd_eth_drivers/libbsdport/contigmalloc.c new file mode 100644 index 0000000..7c9f1b7 --- /dev/null +++ b/bsd_eth_drivers/libbsdport/contigmalloc.c @@ -0,0 +1,33 @@ +#include + +#define _KERNEL +#include +#include + +void * +contigmalloc( + unsigned long size, + int type, + int flags, + unsigned long lo, + unsigned long hi, + unsigned long align, + unsigned long bound) +{ +void *ptr = rtems_bsdnet_malloc(size + sizeof(ptr) + align-1, type, flags); +char *rval = 0; + if ( ptr ) { + unsigned tmp = (unsigned)ptr + align - 1; + tmp -= tmp % align; + rval = (char*)tmp; + /* save backlink */ + *(void**)(rval+size) = ptr; + } + return rval; +} + +void +contigfree(void *ptr, size_t size, int type) +{ + rtems_bsdnet_free( *(void**)((unsigned)ptr + size), type); +} -- cgit v1.2.3