RTEMS CPU Kit with SuperCore
4.11.3
|
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>
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. | |
Inlined Routines from the POSIX Barrier Manager.
This file contains the static inlin implementation of the inlined routines from the POSIX Barrier Manager.
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().
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.
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().
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.
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.
[in] | the_barrier_status | is the SuperCore status. |
References CORE_BARRIER_STATUS_LAST.