RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
23
24#ifdef __cplusplus
25extern "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
210bool _Protected_heap_Free( Heap_Control *heap, void *addr );
211
225bool _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
279uintptr_t _Protected_heap_Get_size( Heap_Control *heap );
280
283#ifdef __cplusplus
284}
285#endif
286
287#endif
288/* end of include file */
API Mutex Handler API.
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
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 _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
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
uintptr_t _Protected_heap_Get_size(Heap_Control *heap)
Returns the size of the allocatable area in bytes.
Definition: pheapgetsize.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
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
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_free_information(Heap_Control *heap, Heap_Information *info)
Returns information about free blocks for the heap.
Definition: pheapgetfreeinfo.c:24
bool _Protected_heap_Walk(Heap_Control *heap, int source, bool dump)
Verifies the integrity of the heap.
Definition: pheapwalk.c:25
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
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
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
bool _Protected_heap_Free(Heap_Control *heap, void *addr)
Frees the allocated memory area.
Definition: pheapfree.c:24
bool _Protected_heap_Extend(Heap_Control *heap, void *area_begin, uintptr_t area_size)
Extends the protected heap.
Definition: pheapextend.c:24
RTEMS_INLINE_ROUTINE void * _Protected_heap_Allocate(Heap_Control *heap, uintptr_t size)
Allocates a memory area.
Definition: protectedheap.h:137
Heap Handler Implementation.
Control block used to manage a heap.
Definition: heap.h:318
Information block returned by _Heap_Get_information().
Definition: heapinfo.h:145
Information about blocks.
Definition: heapinfo.h:125
unsigned size
Definition: tte.h:1