RTEMS CPU Kit with SuperCore  4.11.3
Functions | Variables
barrierimpl.h File Reference

Inlined Routines from the POSIX Barrier Manager. More...

#include <rtems/posix/barrier.h>
#include <rtems/score/corebarrierimpl.h>
#include <rtems/score/objectimpl.h>
#include <pthread.h>
Include dependency graph for barrierimpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void _POSIX_Barrier_Manager_initialization (void)
 POSIX barrier manager initialization. More...
 
int _POSIX_Barrier_Translate_core_barrier_return_code (CORE_barrier_Status the_barrier_status)
 POSIX translate barrier return code. More...
 
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control_POSIX_Barrier_Allocate (void)
 Allocate a barrier control block. More...
 
RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free (POSIX_Barrier_Control *the_barrier)
 Free a barrier control block. More...
 
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control_POSIX_Barrier_Get (pthread_barrier_t *barrier, Objects_Locations *location)
 Get a barrier control block. More...
 

Variables

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

Detailed Description

Inlined Routines from the POSIX Barrier Manager.

This file contains the static inlin implementation of the inlined routines from the POSIX Barrier Manager.

Function Documentation

◆ _POSIX_Barrier_Allocate()

RTEMS_INLINE_ROUTINE POSIX_Barrier_Control* _POSIX_Barrier_Allocate ( void  )

Allocate a barrier control block.

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

References _Objects_Allocate().

◆ _POSIX_Barrier_Free()

RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free ( POSIX_Barrier_Control the_barrier)

Free a barrier control block.

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

◆ _POSIX_Barrier_Get()

RTEMS_INLINE_ROUTINE POSIX_Barrier_Control* _POSIX_Barrier_Get ( pthread_barrier_t *  barrier,
Objects_Locations location 
)

Get a barrier control block.

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 _Objects_Get().

Referenced by pthread_barrier_destroy(), and pthread_barrier_wait().

◆ _POSIX_Barrier_Manager_initialization()

void _POSIX_Barrier_Manager_initialization ( void  )

POSIX barrier manager initialization.

This routine performs the initialization necessary for this manager.

POSIX barrier manager initialization.

References _Objects_Initialize_information(), and _POSIX_Barrier_Information.

◆ _POSIX_Barrier_Translate_core_barrier_return_code()

int _POSIX_Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status  the_barrier_status)

POSIX translate barrier return code.

This routine translates SuperCore Barrier status codes into the corresponding POSIX ones.

Parameters
[in]the_barrier_statusis the SuperCore status.
Returns
the corresponding POSIX status

References CORE_BARRIER_STATUS_LAST.