RTEMS  5.1
protectedheap.h
Go to the documentation of this file.
1 
9 /*
10  * COPYRIGHT (c) 1989-2007.
11  * On-Line Applications Research Corporation (OAR).
12  *
13  * The license and distribution terms for this file may be
14  * found in the file LICENSE in this distribution or at
15  * http://www.rtems.org/license/LICENSE.
16  */
17 
18 #ifndef _RTEMS_SCORE_PROTECTED_HEAP_H
19 #define _RTEMS_SCORE_PROTECTED_HEAP_H
20 
21 #include <rtems/score/heapimpl.h>
22 #include <rtems/score/apimutex.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
49  Heap_Control *heap,
50  void *area_begin,
51  uintptr_t area_size,
52  uintptr_t page_size
53 )
54 {
55  return _Heap_Initialize( heap, area_begin, area_size, page_size );
56 }
57 
69  Heap_Control *heap,
70  void *area_begin,
71  uintptr_t area_size
72 );
73 
94  Heap_Control *heap,
95  uintptr_t size,
96  uintptr_t alignment,
97  uintptr_t boundary
98 );
99 
115  Heap_Control *heap,
116  uintptr_t size,
117  uintptr_t alignment
118 )
119 {
120  return
122 }
123 
138  Heap_Control *heap,
139  uintptr_t size
140 )
141 {
143 }
144 
164  Heap_Control *heap,
165  void *addr,
166  uintptr_t *size
167 );
168 
193  Heap_Control *heap,
194  void *addr,
195  uintptr_t size
196 );
197 
210 bool _Protected_heap_Free( Heap_Control *heap, void *addr );
211 
225 bool _Protected_heap_Walk( Heap_Control *heap, int source, bool dump );
226 
238  Heap_Control *heap,
239  Heap_Block_visitor visitor,
240  void *visitor_arg
241 );
242 
252  Heap_Control *heap,
254 );
255 
266  Heap_Control *heap,
267  Heap_Information *info
268 );
269 
279 uintptr_t _Protected_heap_Get_size( Heap_Control *heap );
280 
283 #ifdef __cplusplus
284 }
285 #endif
286 
287 #endif
288 /* end of include file */
void _Protected_heap_Iterate(Heap_Control *heap, Heap_Block_visitor visitor, void *visitor_arg)
Iterates over all blocks of the heap.
Definition: pheapiterate.c:29
bool _Protected_heap_Get_free_information(Heap_Control *heap, Heap_Information *info)
Returns information about free blocks for the heap.
Definition: pheapgetfreeinfo.c:24
RTEMS_INLINE_ROUTINE uintptr_t _Protected_heap_Initialize(Heap_Control *heap, void *area_begin, uintptr_t area_size, uintptr_t page_size)
Initializes the protected heap.
Definition: protectedheap.h:48
RTEMS_INLINE_ROUTINE void * _Protected_heap_Allocate_aligned(Heap_Control *heap, uintptr_t size, uintptr_t alignment)
Allocates an aligned memory area.
Definition: protectedheap.h:114
Heap Handler Implementation.
Information block returned by _Heap_Get_information().
Definition: heapinfo.h:145
bool _Protected_heap_Resize_block(Heap_Control *heap, void *addr, uintptr_t size)
Resizes the block of the allocated memory area.
Definition: pheapresizeblock.c:24
bool _Protected_heap_Get_information(Heap_Control *heap, Heap_Information_block *info)
Returns information about used and free blocks for the heap.
Definition: pheapgetinfo.c:24
bool _Protected_heap_Walk(Heap_Control *heap, int source, bool dump)
Verifies the integrity of the heap.
Definition: pheapwalk.c:25
API Mutex Handler API.
Control block used to manage a heap.
Definition: heap.h:318
uintptr_t _Heap_Initialize(Heap_Control *heap, void *area_begin, uintptr_t area_size, uintptr_t page_size)
Initializes the heap control block.
Definition: heap.c:207
Information about blocks.
Definition: heapinfo.h:125
bool _Protected_heap_Get_block_size(Heap_Control *heap, void *addr, uintptr_t *size)
Returns the size of the allocatable memory area.
Definition: pheapgetblocksize.c:24
bool _Protected_heap_Extend(Heap_Control *heap, void *area_begin, uintptr_t area_size)
Extends the protected heap.
Definition: pheapextend.c:24
void * _Protected_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 for the protected heap.
Definition: pheapallocate.c:24
RTEMS_INLINE_ROUTINE void * _Protected_heap_Allocate(Heap_Control *heap, uintptr_t size)
Allocates a memory area.
Definition: protectedheap.h:137
bool(* Heap_Block_visitor)(const Heap_Block *block, uintptr_t block_size, bool block_is_used, void *visitor_arg)
Heap block visitor.
Definition: heapimpl.h:204
uintptr_t _Protected_heap_Get_size(Heap_Control *heap)
Returns the size of the allocatable area in bytes.
Definition: pheapgetsize.c:24
unsigned size
Definition: tte.h:74
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
bool _Protected_heap_Free(Heap_Control *heap, void *addr)
Frees the allocated memory area.
Definition: pheapfree.c:24