forked from Imagelibrary/rtems
Modifications from Tony Bennett accepted to return aligned block.
This commit is contained in:
@@ -278,6 +278,16 @@ STATIC INLINE Heap_Block *_Heap_Block_at(
|
||||
unsigned32 offset
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Heap_Block *_Heap_User_Block_at(
|
||||
void *base
|
||||
);
|
||||
|
||||
/*
|
||||
* _Heap_Is_previous_block_free
|
||||
*
|
||||
|
||||
@@ -278,6 +278,16 @@ STATIC INLINE Heap_Block *_Heap_Block_at(
|
||||
unsigned32 offset
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Heap_Block *_Heap_User_Block_at(
|
||||
void *base
|
||||
);
|
||||
|
||||
/*
|
||||
* _Heap_Is_previous_block_free
|
||||
*
|
||||
|
||||
@@ -92,6 +92,22 @@ STATIC INLINE Heap_Block *_Heap_Block_at(
|
||||
return (Heap_Block *) _Addresses_Add_offset( (void *)base, offset );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Heap_Block *_Heap_User_Block_at(
|
||||
void *base
|
||||
)
|
||||
{
|
||||
unsigned32 offset;
|
||||
|
||||
offset = *(((unsigned32 *) base) - 1);
|
||||
return _Heap_Block_at( base, -offset + -HEAP_BLOCK_USED_OVERHEAD);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_previous_block_free
|
||||
|
||||
@@ -92,6 +92,22 @@ STATIC INLINE Heap_Block *_Heap_Block_at(
|
||||
return (Heap_Block *) _Addresses_Add_offset( (void *)base, offset );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Heap_Block *_Heap_User_Block_at(
|
||||
void *base
|
||||
)
|
||||
{
|
||||
unsigned32 offset;
|
||||
|
||||
offset = *(((unsigned32 *) base) - 1);
|
||||
return _Heap_Block_at( base, -offset + -HEAP_BLOCK_USED_OVERHEAD);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_previous_block_free
|
||||
|
||||
@@ -68,6 +68,18 @@
|
||||
( (Heap_Block *) \
|
||||
_Addresses_Add_offset( (void *)(_base), (_offset) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Heap_User_Block_at( _base ) \
|
||||
_Heap_Block_at( \
|
||||
(_base), \
|
||||
-*(((unsigned32 *) (_base)) - 1) + -HEAP_BLOCK_USED_OVERHEAD \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_previous_block_free
|
||||
|
||||
@@ -68,6 +68,18 @@
|
||||
( (Heap_Block *) \
|
||||
_Addresses_Add_offset( (void *)(_base), (_offset) ) )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_User_Block_at
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Heap_User_Block_at( _base ) \
|
||||
_Heap_Block_at( \
|
||||
(_base), \
|
||||
-*(((unsigned32 *) (_base)) - 1) + -HEAP_BLOCK_USED_OVERHEAD \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Heap_Is_previous_block_free
|
||||
|
||||
Reference in New Issue
Block a user