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

This include file contains the static inline implementation of the private inlined routines for POSIX condition variables. More...

#include <rtems/posix/cond.h>
#include <rtems/score/objectimpl.h>
#include <rtems/score/threadqimpl.h>
#include <rtems/score/watchdog.h>
Include dependency graph for condimpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define POSIX_CONDITION_VARIABLES_NO_MUTEX   0
 Constant to indicate condition variable does not currently have a mutex assigned to it.
 

Functions

void _POSIX_Condition_variables_Manager_initialization (void)
 POSIX Condition Variable Manager Initialization. More...
 
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control_POSIX_Condition_variables_Allocate (void)
 POSIX Condition Variable Allocate. More...
 
RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free (POSIX_Condition_variables_Control *the_condition_variable)
 POSIX Condition Variable Free. More...
 
POSIX_Condition_variables_Control_POSIX_Condition_variables_Get (pthread_cond_t *cond, Objects_Locations *location)
 POSIX Condition Variable Get. More...
 
int _POSIX_Condition_variables_Signal_support (pthread_cond_t *cond, bool is_broadcast)
 Implements wake up version of the "signal" operation. More...
 
int _POSIX_Condition_variables_Wait_support (pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout)
 POSIX condition variables wait support. More...
 

Variables

POSIX_EXTERN Objects_Information _POSIX_Condition_variables_Information
 The following defines the information control block used to manage this class of objects.
 
const pthread_condattr_t _POSIX_Condition_variables_Default_attributes
 The default condition variable attributes structure.
 

Detailed Description

This include file contains the static inline implementation of the private inlined routines for POSIX condition variables.

Function Documentation

◆ _POSIX_Condition_variables_Allocate()

RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control* _POSIX_Condition_variables_Allocate ( void  )

POSIX Condition Variable Allocate.

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

References _Objects_Allocate().

Referenced by pthread_cond_init().

◆ _POSIX_Condition_variables_Free()

RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free ( POSIX_Condition_variables_Control the_condition_variable)

POSIX Condition Variable Free.

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

◆ _POSIX_Condition_variables_Get()

POSIX_Condition_variables_Control* _POSIX_Condition_variables_Get ( pthread_cond_t *  cond,
Objects_Locations location 
)

POSIX Condition Variable Get.

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

Referenced by _POSIX_Condition_variables_Signal_support(), and pthread_cond_destroy().

◆ _POSIX_Condition_variables_Manager_initialization()

void _POSIX_Condition_variables_Manager_initialization ( void  )

POSIX Condition Variable Manager Initialization.

This routine performs the initialization necessary for this manager.

References _Objects_Initialize_information(), and _POSIX_Condition_variables_Information.

◆ _POSIX_Condition_variables_Signal_support()

int _POSIX_Condition_variables_Signal_support ( pthread_cond_t *  cond,
bool  is_broadcast 
)

Implements wake up version of the "signal" operation.

A support routine which implements guts of the broadcast and single task wake up version of the "signal" operation.

References _POSIX_Condition_variables_Get().

Referenced by pthread_cond_broadcast(), and pthread_cond_signal().

◆ _POSIX_Condition_variables_Wait_support()

int _POSIX_Condition_variables_Wait_support ( pthread_cond_t *  cond,
pthread_mutex_t *  mutex,
Watchdog_Interval  timeout,
bool  already_timedout 
)

POSIX condition variables wait support.

A support routine which implements guts of the blocking, non-blocking, and timed wait version of condition variable wait routines.