diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-11-30 13:06:21 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-11-30 13:06:21 +0000 |
commit | 9224a751b12835d21b11760c32a4a89524bb6b3e (patch) | |
tree | ee87034914f92f7388a421bf4e7a1c3ea40ce5b1 /cpukit/score | |
parent | fixed some typos (diff) | |
download | rtems-9224a751b12835d21b11760c32a4a89524bb6b3e.tar.bz2 |
Changed base implementation of protected heap allocations to use _Heap_Allocate_aligned_with_boundary().
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/Makefile.am | 2 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/protectedheap.h | 28 | ||||
-rw-r--r-- | cpukit/score/src/pheapallocate.c | 17 | ||||
-rw-r--r-- | cpukit/score/src/pheapallocatealigned.c | 40 |
4 files changed, 36 insertions, 51 deletions
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 8cf2eff059..a86f2a323e 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -138,7 +138,7 @@ libscore_a_SOURCES += src/objectallocatebyindex.c src/objectgetbyindex.c endif ## PROTECTED_HEAP_C_FILES -libscore_a_SOURCES += src/pheapallocatealigned.c src/pheapallocate.c \ +libscore_a_SOURCES += src/pheapallocate.c \ src/pheapextend.c src/pheapfree.c src/pheapgetsize.c \ src/pheapgetblocksize.c src/pheapgetfreeinfo.c src/pheapgetinfo.c \ src/pheapinit.c src/pheapresizeblock.c src/pheapwalk.c diff --git a/cpukit/score/include/rtems/score/protectedheap.h b/cpukit/score/include/rtems/score/protectedheap.h index c9d6a62d8d..01c736d6ae 100644 --- a/cpukit/score/include/rtems/score/protectedheap.h +++ b/cpukit/score/include/rtems/score/protectedheap.h @@ -66,19 +66,37 @@ bool _Protected_heap_Extend( /** * @brief See _Heap_Allocate_aligned_with_boundary(). */ -void *_Protected_heap_Allocate( +void *_Protected_heap_Allocate_aligned_with_boundary( Heap_Control *heap, - uintptr_t size + uintptr_t size, + uintptr_t alignment, + uintptr_t boundary ); /** - * @brief See _Heap_Allocate_aligned_with_boundary(). + * @brief See _Heap_Allocate_aligned_with_boundary() with boundary equals zero. */ -void *_Protected_heap_Allocate_aligned( +RTEMS_INLINE_ROUTINE void *_Protected_heap_Allocate_aligned( Heap_Control *heap, uintptr_t size, uintptr_t alignment -); +) +{ + return + _Protected_heap_Allocate_aligned_with_boundary( heap, size, alignment, 0 ); +} + +/** + * @brief See _Heap_Allocate_aligned_with_boundary() with alignment and + * boundary equals zero. + */ +RTEMS_INLINE_ROUTINE void *_Protected_heap_Allocate( + Heap_Control *heap, + uintptr_t size +) +{ + return _Protected_heap_Allocate_aligned_with_boundary( heap, size, 0, 0 ); +} /** * @brief See _Heap_Size_of_alloc_area(). diff --git a/cpukit/score/src/pheapallocate.c b/cpukit/score/src/pheapallocate.c index 50d560f3a7..b4888dc8ea 100644 --- a/cpukit/score/src/pheapallocate.c +++ b/cpukit/score/src/pheapallocate.c @@ -24,16 +24,23 @@ #include <rtems/system.h> #include <rtems/score/protectedheap.h> -void *_Protected_heap_Allocate( - Heap_Control *the_heap, - uintptr_t size +void *_Protected_heap_Allocate_aligned_with_boundary( + Heap_Control *heap, + uintptr_t size, + uintptr_t alignment, + uintptr_t boundary ) { void *p; _RTEMS_Lock_allocator(); - p = _Heap_Allocate( the_heap, size ); + p = _Heap_Allocate_aligned_with_boundary( + heap, + size, + alignment, + boundary + ); _RTEMS_Unlock_allocator(); + return p; } - diff --git a/cpukit/score/src/pheapallocatealigned.c b/cpukit/score/src/pheapallocatealigned.c deleted file mode 100644 index 756d8a8aa2..0000000000 --- a/cpukit/score/src/pheapallocatealigned.c +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @file - * - * @ingroup ScoreProtHeap - * - * @brief Protected Heap Handler implementation. - */ - -/* - * COPYRIGHT (c) 1989-2007. - * 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.com/license/LICENSE. - * - * $Id$ - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <rtems/system.h> -#include <rtems/score/protectedheap.h> - -void *_Protected_heap_Allocate_aligned( - Heap_Control *the_heap, - uintptr_t size, - uintptr_t alignment -) -{ - void *p; - - _RTEMS_Lock_allocator(); - p = _Heap_Allocate_aligned( the_heap, size, alignment ); - _RTEMS_Unlock_allocator(); - return p; -} - |