* score/include/rtems/score/heap.h, score/inline/rtems/score/heap.inl,
	score/src/heapallocate.c, score/src/heap.c, score/src/heapextend.c,
	score/src/heapresizeblock.c, score/src/heapwalk.c: Documenation.
	Simplified block resize. Improved heap walk. Changed heap layout to
	avoid a special case for _Heap_Is_used() and _Heap_Is_free().
	* libmisc/stackchk/check.c: Update for heap API changes.
This commit is contained in:
Joel Sherrill
2009-09-09 14:58:37 +00:00
parent 1c6b22861b
commit 518c2aeba2
9 changed files with 437 additions and 409 deletions

View File

@@ -91,8 +91,15 @@ static inline bool Stack_check_Frame_pointer_in_range(
((_the_stack)->area)
#else
/*
* We need this magic offset because during a task delete the task stack will
* be freed before we enter the task switch extension which checks the stack.
* The task stack free operation will write the next and previous pointers
* for the free list into this area.
*/
#define Stack_check_Get_pattern_area( _the_stack ) \
((Stack_check_Control *) ((char *)(_the_stack)->area + HEAP_BLOCK_HEADER_SIZE))
((Stack_check_Control *) ((char *)(_the_stack)->area \
+ sizeof(Heap_Block) - HEAP_BLOCK_HEADER_SIZE))
#define Stack_check_Calculate_used( _low, _size, _high_water) \
( ((char *)(_low) + (_size)) - (char *)(_high_water) )