RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Macros | Typedefs | Enumerations | Functions
heapimpl.h File Reference

This header file provides interfaces of the Barrier Handler which are only used by the implementation. More...

#include <rtems/score/heap.h>

Go to the source code of this file.

Macros

#define HEAP_PREV_BLOCK_USED   ((uintptr_t) 1)
 See also Heap_Block::size_and_flag.
 
#define HEAP_ALLOC_BONUS   sizeof(uintptr_t)
 Size of the part at the block begin which may be used for allocation in charge of the previous block.
 
#define _Heap_Protection_block_initialize(heap, block)   ((void) 0)
 
#define _Heap_Protection_block_check(heap, block)   ((void) 0)
 
#define _Heap_Protection_block_error(heap, block, reason)   ((void) 0)
 
#define _Heap_Protection_free_all_delayed_blocks(heap)   ((void) 0)
 
#define _HAssert(cond)   ((void) 0)
 

Typedefs

typedef bool(* Heap_Block_visitor) (const Heap_Block *block, uintptr_t block_size, bool block_is_used, void *visitor_arg)
 Heap block visitor.
 

Enumerations

enum  Heap_Resize_status { HEAP_RESIZE_SUCCESSFUL , HEAP_RESIZE_UNSATISFIED , HEAP_RESIZE_FATAL_ERROR }
 See _Heap_Resize_block().
 

Functions

bool _Heap_Get_first_and_last_block (uintptr_t heap_area_begin, uintptr_t heap_area_size, uintptr_t page_size, uintptr_t min_block_size, Heap_Block **first_block_ptr, Heap_Block **last_block_ptr)
 Gets the first and last block for the heap area.
 
uintptr_t _Heap_Initialize (Heap_Control *heap, void *area_begin, uintptr_t area_size, uintptr_t page_size)
 Initializes the heap control block.
 
void * _Heap_Allocate_aligned_with_boundary (Heap_Control *heap, uintptr_t size, uintptr_t alignment, uintptr_t boundary)
 Allocates an aligned memory area with boundary constraint.
 
bool _Heap_Free (Heap_Control *heap, void *addr)
 Frees the allocated memory area.
 
bool _Heap_Walk (Heap_Control *heap, int source, bool dump)
 Verifies the integrity of the heap.
 
void _Heap_Iterate (Heap_Control *heap, Heap_Block_visitor visitor, void *visitor_arg)
 Iterates over all blocks of the heap.
 
Heap_Block_Heap_Greedy_allocate (Heap_Control *heap, const uintptr_t *block_sizes, size_t block_count)
 Greedily allocates and empties the heap.
 
Heap_Block_Heap_Greedy_allocate_all_except_largest (Heap_Control *heap, uintptr_t *allocatable_size)
 Greedily allocates all blocks except the largest free block.
 
void _Heap_Greedy_free (Heap_Control *heap, Heap_Block *blocks)
 Frees blocks of a greedy allocation.
 
void _Heap_Get_information (Heap_Control *heap, Heap_Information_block *info)
 Returns information about used and free blocks for the heap.
 
void _Heap_Get_free_information (Heap_Control *heap, Heap_Information *info)
 Returns information about free blocks for the heap.
 
bool _Heap_Size_of_alloc_area (Heap_Control *heap, void *addr, uintptr_t *size)
 Returns the size of the allocatable memory area.
 
Heap_Resize_status _Heap_Resize_block (Heap_Control *heap, void *addr, uintptr_t size, uintptr_t *old_size, uintptr_t *new_size)
 Resizes the block of the allocated memory area.
 
Heap_Block_Heap_Block_allocate (Heap_Control *heap, Heap_Block *block, uintptr_t alloc_begin, uintptr_t alloc_size)
 Allocates the memory area. starting at alloc_begin of size alloc_size bytes in the block block.
 

Detailed Description

This header file provides interfaces of the Barrier Handler which are only used by the implementation.