RTEMS
Files | Classes | Macros | Functions | Variables
Classic Region Manager Implementation

Files

file  regiondata.h
 Classic Region Manager Data Structures.
 
file  regionimpl.h
 Classic Region Manager Implementation.
 

Classes

struct  Region_Control
 

Macros

#define REGION_INFORMATION_DEFINE(max)
 Macro to define the objects information for the Classic Region objects. More...
 
#define REGION_OF_THREAD_QUEUE_QUEUE(queue)   RTEMS_CONTAINER_OF( queue, Region_Control, Wait_queue.Queue )
 

Functions

static __inline__ Region_Control_Region_Allocate (void)
 Region_Allocate. More...
 
static __inline__ void _Region_Free (Region_Control *the_region)
 Region_Free. More...
 
static __inline__ Region_Control_Region_Get_and_lock (Objects_Id id)
 
static __inline__ void _Region_Unlock (Region_Control *the_region)
 
static __inline__ void * _Region_Allocate_segment (Region_Control *the_region, uintptr_t size)
 Region_Allocate_segment. More...
 
static __inline__ 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

Objects_Information _Region_Information
 The Classic Region objects information.
 

Detailed Description

Macro Definition Documentation

◆ REGION_INFORMATION_DEFINE

#define REGION_INFORMATION_DEFINE (   max)
Value:
_Region, \
OBJECTS_CLASSIC_API, \
OBJECTS_RTEMS_REGIONS, \
max, \
NULL \
)
#define OBJECTS_NO_STRING_NAME
Constant for the object information string name length to indicate that this object class has no stri...
Definition: objectdata.h:101
#define OBJECTS_INFORMATION_DEFINE(name, api, cls, type, max, nl, ex)
Statically initializes an objects information.
Definition: objectdata.h:427

Macro to define the objects information for the Classic Region objects.

This macro should only be used by <rtems/confdefs.h>.

Parameters
maxThe configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag may be set).

Definition at line 63 of file regiondata.h.

Function Documentation

◆ _Region_Allocate()

static __inline__ Region_Control* _Region_Allocate ( void  )
static

Region_Allocate.

This function allocates a region control block from the inactive chain of free region control blocks.

Definition at line 47 of file regionimpl.h.

◆ _Region_Allocate_segment()

static __inline__ void* _Region_Allocate_segment ( Region_Control the_region,
uintptr_t  size 
)
static

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.

Definition at line 97 of file regionimpl.h.

◆ _Region_Free()

static __inline__ void _Region_Free ( Region_Control the_region)
static

Region_Free.

This routine frees a region control block to the inactive chain of free region control blocks.

Definition at line 58 of file regionimpl.h.

◆ _Region_Free_segment()

static __inline__ bool _Region_Free_segment ( Region_Control the_region,
void *  the_segment 
)
static

Region_Free_segment.

This function frees the_segment to the_region.

Definition at line 110 of file regionimpl.h.

◆ _Region_Process_queue()

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.

Parameters
[in]the_regionis the the region