21 #ifndef _RTEMS_POSIX_BARRIERIMPL_H 22 #define _RTEMS_POSIX_BARRIERIMPL_H 34 #define POSIX_BARRIER_MAGIC 0x1cf03773UL 36 #define POSIX_BARRIER_TQ_OPERATIONS &_Thread_queue_Operations_FIFO 42 unsigned int waiting_threads;
46 pthread_barrier_t *_barrier
61 _Thread_queue_Context_ISR_disable( queue_context, level );
63 executing = _Thread_Executing;
64 _Thread_queue_Queue_acquire_critical(
65 &barrier->Queue.Queue,
66 &executing->Potpourri_stats,
73 static inline void _POSIX_Barrier_Queue_release(
79 &barrier->Queue.Queue,
84 #define POSIX_BARRIER_VALIDATE_OBJECT( bar ) \ 88 || ( (uintptr_t) ( bar ) ^ POSIX_BARRIER_MAGIC ) != ( bar )->_flags \ Thread queue context for the thread queue methods.
Definition: threadq.h:198
POSIX Threads Private Support.
Definition: barrierimpl.h:38
Thread queue with a layout compatible to struct _Thread_queue_Queue defined in Newlib <sys/lock....
Definition: threadqimpl.h:54
uint32_t ISR_Level
Definition: isrlevel.h:41
Thread_queue_Lock_context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:203
Constants and Structures Associated with the Manipulation of Objects.
RTEMS_INLINE_ROUTINE void _Thread_queue_Context_set_ISR_level(Thread_queue_Context *queue_context, ISR_Level level)
Sets the thread queue context ISR level.
Definition: threadqimpl.h:411
RTEMS_INLINE_ROUTINE void _Thread_queue_Context_initialize(Thread_queue_Context *queue_context)
Initializes a thread queue context.
Definition: threadqimpl.h:152
ISR_lock_Context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:130
RTEMS_INLINE_ROUTINE void _Thread_queue_Queue_release(Thread_queue_Queue *queue, ISR_lock_Context *lock_context)
Releases the thread queue queue and enables interrupts.
Definition: threadqimpl.h:625