RTEMS CPU Kit with SuperCore  4.11.3
Macros | Functions | Variables
Classic Barrier Implementation
Collaboration diagram for Classic Barrier Implementation:

Macros

#define RTEMS_BARRIER_EXTERN   extern
 Instantiate Barrier Data. More...
 

Functions

void _Barrier_Manager_initialization (void)
 _Barrier_Manager_initialization More...
 
RTEMS_INLINE_ROUTINE Barrier_Control_Barrier_Allocate (void)
 _Barrier_Allocate More...
 
RTEMS_INLINE_ROUTINE void _Barrier_Free (Barrier_Control *the_barrier)
 _Barrier_Free More...
 
RTEMS_INLINE_ROUTINE Barrier_Control_Barrier_Get (Objects_Id id, Objects_Locations *location)
 _Barrier_Get More...
 
rtems_status_code _Barrier_Translate_core_barrier_return_code (CORE_barrier_Status the_status)
 Translate SuperCore Barrier Status Code to RTEMS Status Code. More...
 

Variables

RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information
 The following defines the information control block used to manage this class of objects.
 

Detailed Description

Macro Definition Documentation

◆ RTEMS_BARRIER_EXTERN

#define RTEMS_BARRIER_EXTERN   extern

Instantiate Barrier Data.

Barrier 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.

Function Documentation

◆ _Barrier_Allocate()

RTEMS_INLINE_ROUTINE Barrier_Control* _Barrier_Allocate ( void  )

_Barrier_Allocate

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

References _Objects_Allocate().

Referenced by rtems_barrier_create().

◆ _Barrier_Free()

RTEMS_INLINE_ROUTINE void _Barrier_Free ( Barrier_Control the_barrier)

_Barrier_Free

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

◆ _Barrier_Get()

RTEMS_INLINE_ROUTINE Barrier_Control* _Barrier_Get ( Objects_Id  id,
Objects_Locations location 
)

_Barrier_Get

This function maps barrier IDs to barrier control blocks. If ID corresponds to a local barrier, then it returns the_barrier control pointer which maps to ID and location is set to OBJECTS_LOCAL. if the barrier ID is global and resides on a remote node, then location is set to OBJECTS_REMOTE, and the_barrier is undefined. Otherwise, location is set to OBJECTS_ERROR and the_barrier is undefined.

References _Barrier_Translate_core_barrier_return_code(), and _Objects_Get().

Referenced by rtems_barrier_delete(), and rtems_barrier_release().

◆ _Barrier_Manager_initialization()

void _Barrier_Manager_initialization ( void  )

_Barrier_Manager_initialization

This routine performs the initialization necessary for this manager.

References _Barrier_Information, and _Objects_Initialize_information().

◆ _Barrier_Translate_core_barrier_return_code()

rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status  the_status)

Translate SuperCore Barrier Status Code to RTEMS Status Code.

This function returns a RTEMS status code based on the barrier status code specified.

Parameters
[in]the_statusis the SuperCore Barrier status to translate.
Return values
astatus code indicating success or the reason for failure.

References CORE_BARRIER_STATUS_LAST, and RTEMS_INTERNAL_ERROR.

Referenced by _Barrier_Get().