RTEMS CPU Kit with SuperCore
4.11.3
|
![]() |
Files | |
file | regionimpl.h |
Classic Region Manager Implementation. | |
Macros | |
#define | RTEMS_REGION_EXTERN extern |
Instantiate RTEMS Region Data. More... | |
#define | _Region_Debug_Walk(_the_region, _source) |
_Region_Debug_Walk More... | |
Functions | |
void | _Region_Manager_initialization (void) |
_Region_Manager_initialization More... | |
RTEMS_INLINE_ROUTINE Region_Control * | _Region_Allocate (void) |
Region_Allocate. More... | |
RTEMS_INLINE_ROUTINE void | _Region_Free (Region_Control *the_region) |
Region_Free. More... | |
RTEMS_INLINE_ROUTINE Region_Control * | _Region_Get (Objects_Id id, Objects_Locations *location) |
Region_Get. More... | |
RTEMS_INLINE_ROUTINE void * | _Region_Allocate_segment (Region_Control *the_region, uintptr_t size) |
Region_Allocate_segment. More... | |
RTEMS_INLINE_ROUTINE bool | _Region_Free_segment (Region_Control *the_region, void *the_segment) |
Region_Free_segment. More... | |
void | _Region_Process_queue (Region_Control *the_region) |
Process Region Queue. More... | |
Variables | |
RTEMS_REGION_EXTERN Objects_Information | _Region_Information |
The following defines the information control block used to manage this class of objects. | |
#define _Region_Debug_Walk | ( | _the_region, | |
_source | |||
) |
_Region_Debug_Walk
This routine is invoked to verify the integrity of a heap associated with the_region.
#define RTEMS_REGION_EXTERN extern |
Instantiate RTEMS Region Data.
Region Manager – Instantiate Data
This constant is defined to extern most of the time when using this header file. However by defining it to nothing, the data declared in this header file can be instantiated. This is done in a single per manager file.
RTEMS_INLINE_ROUTINE Region_Control* _Region_Allocate | ( | void | ) |
Region_Allocate.
This function allocates a region control block from the inactive chain of free region control blocks.
References _Objects_Allocate().
RTEMS_INLINE_ROUTINE void* _Region_Allocate_segment | ( | Region_Control * | the_region, |
uintptr_t | size | ||
) |
Region_Allocate_segment.
This function attempts to allocate a segment from the_region. If successful, it returns the address of the allocated segment. Otherwise, it returns NULL.
RTEMS_INLINE_ROUTINE void _Region_Free | ( | Region_Control * | the_region | ) |
Region_Free.
This routine frees a region control block to the inactive chain of free region control blocks.
RTEMS_INLINE_ROUTINE bool _Region_Free_segment | ( | Region_Control * | the_region, |
void * | the_segment | ||
) |
Region_Free_segment.
This function frees the_segment to the_region.
References _Heap_Free(), and _Region_Process_queue().
RTEMS_INLINE_ROUTINE Region_Control* _Region_Get | ( | Objects_Id | id, |
Objects_Locations * | location | ||
) |
Region_Get.
This function maps region IDs to region control blocks. If ID corresponds to a local region, then it returns the_region control pointer which maps to ID and location is set to OBJECTS_LOCAL. Otherwise, location is set to OBJECTS_ERROR and the_region is undefined.
References _Objects_Get_no_protection().
Referenced by rtems_region_delete().
void _Region_Manager_initialization | ( | void | ) |
_Region_Manager_initialization
Region Manager
This routine performs the initialization necessary for this manager.
References _Objects_Initialize_information(), and _Region_Information.
void _Region_Process_queue | ( | Region_Control * | the_region | ) |
Process Region Queue.
This is a helper routine which is invoked any time memory is freed. It looks at the set of waiting tasks and attempts to satisfy all outstanding requests.
[in] | the_region | is the the region |
References _Thread_Disable_dispatch().
Referenced by _Region_Free_segment().