diff options
Diffstat (limited to 'cpukit/libcsupport/src/cachealignedalloc.c')
-rw-r--r-- | cpukit/libcsupport/src/cachealignedalloc.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/cachealignedalloc.c b/cpukit/libcsupport/src/cachealignedalloc.c new file mode 100644 index 0000000000..a704859dbe --- /dev/null +++ b/cpukit/libcsupport/src/cachealignedalloc.c @@ -0,0 +1,28 @@ +/* + * RTEMS Cache Aligned Malloc + * + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include <rtems.h> +#include <rtems/malloc.h> + +void *rtems_cache_aligned_malloc( size_t nbytes ) +{ + size_t line_size = rtems_cache_get_data_line_size(); + + if ( line_size > 0 ) { + /* Assume that the cache line size is a power of two */ + size_t m = line_size - 1; + + nbytes = (nbytes + m) & ~m; + } + + return rtems_heap_allocate_aligned_with_boundary( nbytes, line_size, 0 ); +} |