RTEMS CPU Kit with SuperCore  4.11.3
condimpl.h
Go to the documentation of this file.
1 
8 /*
9  * COPYRIGHT (c) 1989-2013.
10  * On-Line Applications Research Corporation (OAR).
11  *
12  * The license and distribution terms for this file may be
13  * found in the file LICENSE in this distribution or at
14  * http://www.rtems.org/license/LICENSE.
15  */
16 
17 #ifndef _RTEMS_POSIX_CONDIMPL_H
18 #define _RTEMS_POSIX_CONDIMPL_H
19 
20 #include <rtems/posix/cond.h>
21 #include <rtems/score/objectimpl.h>
23 #include <rtems/score/watchdog.h>
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
33 #define POSIX_CONDITION_VARIABLES_NO_MUTEX 0
34 
40 
44 extern const pthread_condattr_t _POSIX_Condition_variables_Default_attributes;
45 
52 
61 {
63  _Objects_Allocate( &_POSIX_Condition_variables_Information );
64 }
65 
73  POSIX_Condition_variables_Control *the_condition_variable
74 )
75 {
76  _Thread_queue_Destroy( &the_condition_variable->Wait_queue );
78  &_POSIX_Condition_variables_Information,
79  &the_condition_variable->Object
80  );
81 }
82 
95  pthread_cond_t *cond,
96  Objects_Locations *location
97 );
98 
106  pthread_cond_t *cond,
107  bool is_broadcast
108 );
109 
117  pthread_cond_t *cond,
118  pthread_mutex_t *mutex,
119  Watchdog_Interval timeout,
120  bool already_timedout
121 );
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 #endif
128 /* end of include file */
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:101
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free(POSIX_Condition_variables_Control *the_condition_variable)
POSIX Condition Variable Free.
Definition: condimpl.h:72
Constants and Structures Associated with Watchdog Timers.
const pthread_condattr_t _POSIX_Condition_variables_Default_attributes
The default condition variable attributes structure.
Definition: conddefaultattributes.c:34
POSIX_Condition_variables_Control * _POSIX_Condition_variables_Get(pthread_cond_t *cond, Objects_Locations *location)
POSIX Condition Variable Get.
Definition: condget.c:24
void _POSIX_Condition_variables_Manager_initialization(void)
POSIX Condition Variable Manager Initialization.
Definition: cond.c:43
int _POSIX_Condition_variables_Signal_support(pthread_cond_t *cond, bool is_broadcast)
Implements wake up version of the "signal" operation.
Definition: condsignalsupp.c:37
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.
Definition: condwaitsupp.c:31
Constants and Structures Associated with the Manipulation of Objects.
The following defines the structure for the information used to manage each class of objects...
Definition: objectimpl.h:136
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdog.h:47
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control * _POSIX_Condition_variables_Allocate(void)
POSIX Condition Variable Allocate.
Definition: condimpl.h:60
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
POSIX_EXTERN Objects_Information _POSIX_Condition_variables_Information
The following defines the information control block used to manage this class of objects.
Definition: condimpl.h:39
POSIX Condition Variables Private Support.
Inlined Routines in the Object Handler.
Definition: mutex.h:5
#define POSIX_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:123