17 #ifndef _RTEMS_RTEMS_REGIONIMPL_H 18 #define _RTEMS_RTEMS_REGIONIMPL_H 48 #ifndef RTEMS_REGION_EXTERN 49 #define RTEMS_REGION_EXTERN extern 88 _Thread_queue_Destroy( &the_region->Wait_queue );
135 return _Heap_Free( &the_region->Memory, the_segment );
157 #define _Region_Debug_Walk( _the_region, _source ) \ 159 if ( rtems_debug_is_enabled( RTEMS_DEBUG_REGION ) ) \ 160 _Heap_Walk( &(_the_region)->Memory, _source, false ); \ 165 #define _Region_Debug_Walk( _the_region, _source ) 175 #if defined(RTEMS_MULTIPROCESSING) RTEMS_INLINE_ROUTINE Region_Control * _Region_Get(Objects_Id id, Objects_Locations *location)
Region_Get.
Definition: regionimpl.h:101
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:101
void _Region_Process_queue(Region_Control *the_region)
Process Region Queue.
Definition: regionprocessqueue.c:25
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
RTEMS_REGION_EXTERN Objects_Information _Region_Information
The following defines the information control block used to manage this class of objects.
Definition: regionimpl.h:56
Heap Handler Implementation.
Objects_Control * _Objects_Get_no_protection(Objects_Information *information, Objects_Id id, Objects_Locations *location)
Maps object ids to object control blocks.
Definition: objectgetnoprotection.c:23
The following records define the control block used to manage each region.
Definition: region.h:59
RTEMS_INLINE_ROUTINE Region_Control * _Region_Allocate(void)
Region_Allocate.
Definition: regionimpl.h:73
RTEMS_INLINE_ROUTINE void * _Heap_Allocate(Heap_Control *heap, uintptr_t size)
See _Heap_Allocate_aligned_with_boundary() with alignment and boundary equals zero.
Definition: heapimpl.h:135
void _Region_Manager_initialization(void)
_Region_Manager_initialization
Definition: region.c:40
RTEMS_INLINE_ROUTINE bool _Region_Free_segment(Region_Control *the_region, void *the_segment)
Region_Free_segment.
Definition: regionimpl.h:130
Constants and Structures Associated with the Manipulation of Objects.
Information Related to the Debug Support Within RTEMS.
RTEMS_INLINE_ROUTINE void _Region_Free(Region_Control *the_region)
Region_Free.
Definition: regionimpl.h:84
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
#define RTEMS_REGION_EXTERN
Instantiate RTEMS Region Data.
Definition: regionimpl.h:49
RTEMS_INLINE_ROUTINE void * _Region_Allocate_segment(Region_Control *the_region, uintptr_t size)
Region_Allocate_segment.
Definition: regionimpl.h:117
Inlined Routines in the Object Handler.
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
bool _Heap_Free(Heap_Control *heap, void *addr)
Frees the allocated memory area starting at addr in the heap heap.
Definition: heapfree.c:99