26 static void _Event_Satisfy(
37 static bool _Event_Is_blocking_on_event(
48 return ( wait_flags & wait_mask ) == wait_class;
51 static bool _Event_Is_satisfied(
65 && ( *seized_events == event_condition ||
_Options_Is_any( option_set ) );
83 pending_events =
event->pending_events;
86 _Event_Is_blocking_on_event( the_thread, wait_class )
87 && _Event_Is_satisfied( the_thread, pending_events, &seized_events )
92 _Event_Satisfy( the_thread, event, pending_events, seized_events );
static __inline__ void _Thread_Unblock(Thread_Control *the_thread)
Unblocks the thread.
Thread_Wait_information Wait
Inlined Routines in the Watchdog Handler.
uint32_t rtems_option
This type is used to represent an option set.
RTEMS_INLINE_ROUTINE bool _Options_Is_any(rtems_option option_set)
Checks if the RTEMS_EVENT_ANY option is enabled in OPTION_SET.
static __inline__ Thread_Wait_flags _Thread_Wait_flags_get(const Thread_Control *the_thread)
Gets the thread's wait flags according to the ATOMIC_ORDER_RELAXED.
Classic Options Implementation.
Classic Event Manager Implementation.
This status code indicates successful completion.
static __inline__ Per_CPU_Control * _Thread_Dispatch_disable_critical(const ISR_lock_Context *lock_context)
Disables thread dispatching inside a critical section (interrupts disabled).
#define THREAD_WAIT_STATE_READY_AGAIN
Indicates that a condition to end the thread wait occurred.
static __inline__ void _Thread_Wait_flags_set(Thread_Control *the_thread, Thread_Wait_flags flags)
Sets the thread's wait flags.
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
unsigned int Thread_Wait_flags
This type is able to contain several flags used to control the wait class and state of a thread...
static __inline__ void _Thread_Timer_remove(Thread_Control *the_thread)
Remove the watchdog timer from the thread.
static __inline__ rtems_event_set _Event_sets_Get(rtems_event_set the_event_set, rtems_event_set the_event_condition)
Returns the events in event_condition that are set in event_set.
static __inline__ bool _Thread_Wait_flags_try_change_release(Thread_Control *the_thread, Thread_Wait_flags expected_flags, Thread_Wait_flags desired_flags)
Tries to change the thread wait flags with release semantics in case of success.
#define THREAD_WAIT_STATE_BLOCKED
Indicates that the thread completed the blocking operation.
void _Thread_Dispatch_enable(Per_CPU_Control *cpu_self)
Enables thread dispatching.
static __inline__ rtems_event_set _Event_sets_Clear(rtems_event_set the_event_set, rtems_event_set the_mask)
Removes the events in mask from the event_set passed in.
static __inline__ bool _Event_sets_Is_empty(rtems_event_set the_event_set)
Checks if on events are posted in the event_set.
#define THREAD_WAIT_CLASS_MASK
Mask to get the thread wait class flags.
Inlined Routines from the Thread Handler.
static __inline__ void _Thread_Wait_acquire_default_critical(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Acquires the thread wait default lock inside a critical section (interrupts disabled).
Local ISR lock context for acquire and release pairs.
static __inline__ void _Event_sets_Post(rtems_event_set the_new_events, rtems_event_set *the_event_set)
Posts the given new_events into the event_set passed in.
uint32_t rtems_event_set
This integer type can hold an event set of up to 32 events represented as a bit field.
#define THREAD_WAIT_STATE_INTEND_TO_BLOCK
Indicates that the thread begins with the blocking operation.
static __inline__ void _Thread_Wait_release_default(Thread_Control *the_thread, ISR_lock_Context *lock_context)
Releases the thread wait default lock and restores the previous interrupt status. ...
#define _Assert(_e)
Assertion similar to assert() controlled via RTEMS_DEBUG instead of NDEBUG.