00001
00017 #ifndef _RTEMS_SCORE_PROTECTED_HEAP_H
00018 #define _RTEMS_SCORE_PROTECTED_HEAP_H
00019
00020 #include <rtems/score/heap.h>
00021 #include <rtems/score/apimutex.h>
00022
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00054 static inline uint32_t _Protected_heap_Initialize(
00055 Heap_Control *the_heap,
00056 void *starting_address,
00057 size_t size,
00058 uint32_t page_size
00059 )
00060 {
00061 return _Heap_Initialize( the_heap, starting_address, size, page_size );
00062 }
00063
00074 boolean _Protected_heap_Extend(
00075 Heap_Control *the_heap,
00076 void *starting_address,
00077 size_t size
00078 );
00079
00089 void *_Protected_heap_Allocate(
00090 Heap_Control *the_heap,
00091 size_t size
00092 );
00093
00108 void *_Protected_heap_Allocate_aligned(
00109 Heap_Control *the_heap,
00110 size_t size,
00111 uint32_t alignment
00112 );
00113
00128 boolean _Protected_heap_Get_block_size(
00129 Heap_Control *the_heap,
00130 void *starting_address,
00131 size_t *size
00132 );
00133
00146 boolean _Protected_heap_Resize_block(
00147 Heap_Control *the_heap,
00148 void *starting_address,
00149 size_t size
00150 );
00151
00162 boolean _Protected_heap_Free(
00163 Heap_Control *the_heap,
00164 void *start_address
00165 );
00166
00176 boolean _Protected_heap_Walk(
00177 Heap_Control *the_heap,
00178 int source,
00179 boolean do_dump
00180 );
00181
00189 void _Protected_heap_Get_information(
00190 Heap_Control *the_heap,
00191 Heap_Information_block *the_info
00192 );
00193
00203 void _Protected_heap_Get_free_information(
00204 Heap_Control *the_heap,
00205 Heap_Information *info
00206 );
00207
00208 #ifdef __cplusplus
00209 }
00210 #endif
00211
00214 #endif
00215