From 28a08877ea961b0440b121b4617919136d6f342d Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 10 Feb 2012 10:36:26 +0100 Subject: Added support functions for greedy heap allocation Various tests must check program paths that result due to failed memory allocations from the heap. To avoid tinkering with internal heap structures throughout the test code these functions should be used. --- cpukit/score/include/rtems/score/heap.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'cpukit/score/include/rtems/score/heap.h') diff --git a/cpukit/score/include/rtems/score/heap.h b/cpukit/score/include/rtems/score/heap.h index 1996fb80ff..8f508c9874 100644 --- a/cpukit/score/include/rtems/score/heap.h +++ b/cpukit/score/include/rtems/score/heap.h @@ -548,6 +548,29 @@ void _Heap_Iterate( void *visitor_arg ); +/** + * @brief Greedy allocate that empties the heap. + * + * Afterward the heap has at most @a remaining_free_space free space left in + * one free block. All other blocks are used. + * + * @see _Heap_Greedy_free(). + */ +Heap_Block *_Heap_Greedy_allocate( + Heap_Control *heap, + uintptr_t remaining_free_space +); + +/** + * @brief Frees blocks of a greedy allocation. + * + * The @a blocks must be the return value of _Heap_Greedy_allocate(). + */ +void _Heap_Greedy_free( + Heap_Control *heap, + Heap_Block *blocks +); + /** * @brief Returns information about used and free blocks for the heap @a heap * in @a info. -- cgit v1.2.3