19 #ifndef _RTEMS_SCORE_COREBARRIERIMPL_H 20 #define _RTEMS_SCORE_COREBARRIERIMPL_H 63 #define CORE_BARRIER_STATUS_LAST CORE_BARRIER_TIMEOUT 91 _Thread_queue_Destroy( &the_barrier->
Wait_queue );
115 Thread_Control *executing,
150 #define _CORE_barrier_Flush( _the_barrier, _remote_extract_callout, _status) \ 151 _Thread_queue_Flush( \ 152 &((_the_barrier)->Wait_queue), \ 153 (_remote_extract_callout), \ This status indicates that the operation completed successfully.
Definition: corebarrierimpl.h:41
void _CORE_barrier_Wait(CORE_barrier_Control *the_barrier, Thread_Control *executing, Objects_Id id, bool wait, Watchdog_Interval timeout, CORE_barrier_API_mp_support_callout api_barrier_mp_support)
Wait for the barrier.
Definition: corebarrierwait.c:26
void(* CORE_barrier_API_mp_support_callout)(Thread_Control *, Objects_Id)
The following type defines the callout which the API provides to support global/multiprocessor operat...
Definition: corebarrierimpl.h:69
#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
Constants and Structures Associated with Watchdog Timers.
This specifies that the barrier will automatically release when the user specified number of threads ...
Definition: corebarrier.h:45
This status indicates that the barrier is configured for automatic release and the caller tripped the...
Definition: corebarrierimpl.h:46
Constants and Structures Related with the Thread Control Block.
RTEMS_INLINE_ROUTINE bool _CORE_barrier_Is_automatic(CORE_barrier_Attributes *the_attribute)
This function returns true if the automatic release attribute is enabled in the attribute_set and fal...
Definition: corebarrierimpl.h:165
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
This status indicates that the calling task was willing to block but the operation was unable to comp...
Definition: corebarrierimpl.h:55
This status indicates that the thread was blocked waiting for an operation to complete and the barrie...
Definition: corebarrierimpl.h:50
Constants and Structures Associated with the Barrier Handler.
Constants and Structures Associated with the Manipulation of Objects.
CORE_barrier_Status
Core Barrier handler return statuses.
Definition: corebarrierimpl.h:39
Thread_queue_Control Wait_queue
This field is the Waiting Queue used to manage the set of tasks which are blocked waiting for the bar...
Definition: corebarrier.h:74
uint32_t number_of_waiting_threads
This element contains the current number of thread waiting for this barrier to be released...
Definition: corebarrier.h:81
RTEMS_INLINE_ROUTINE uint32_t _CORE_barrier_Get_number_of_waiting_threads(CORE_barrier_Control *the_barrier)
This routine returns the number of threads currently waiting at the barrier.
Definition: corebarrierimpl.h:180
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdog.h:47
uint32_t _CORE_barrier_Release(CORE_barrier_Control *the_barrier, Objects_Id id, CORE_barrier_API_mp_support_callout api_barrier_mp_support)
Manually release the barrier.
Definition: corebarrierrelease.c:26
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
The following defines the control block used to manage each barrier.
Definition: corebarrier.h:70
The following defines the control block used to manage the attributes of each barrier.
Definition: corebarrier.h:56
CORE_barrier_Disciplines discipline
This field indicates whether the barrier is automatic or manual.
Definition: corebarrier.h:59
void _CORE_barrier_Initialize(CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes)
Initialize core barrier.
Definition: corebarrier.c:24