25 static void _Rate_monotonic_Renew_deadline(
46 _Rate_monotonic_Release( the_period, lock_context );
57 owner = the_period->
owner;
60 _Rate_monotonic_Acquire_critical( the_period, &lock_context );
74 RATE_MONOTONIC_INTEND_TO_BLOCK,
75 RATE_MONOTONIC_READY_AGAIN
85 _Rate_monotonic_Restart( the_period, owner, &lock_context );
91 _Rate_monotonic_Renew_deadline( the_period, &lock_context );
static __inline__ void _Thread_Unblock(Thread_Control *the_thread)
Unblocks the thread.
Thread_Wait_information Wait
Watchdog_Control Timer
Protects the rate monotonic period state.
The control block used to manage each watchdog timer.
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.
#define RTEMS_CONTAINER_OF(_m, _type, _member_name)
Returns the pointer to the container of a specified member pointer.
static __inline__ void _Thread_Wait_flags_set(Thread_Control *the_thread, Thread_Wait_flags flags)
Sets the thread's wait flags.
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__ 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.
static __inline__ uint64_t _Watchdog_Per_CPU_insert_ticks(Watchdog_Control *the_watchdog, Per_CPU_Control *cpu, Watchdog_Interval ticks)
Sets the watchdog's cpu to the given instance and sets its expiration time to the watchdog expiration...
rtems_rate_monotonic_period_states state
The following structure defines the control block used to manage each period.
#define _ISR_lock_ISR_disable(_context)
Disables interrupts and saves the previous interrupt state in the ISR lock context.
Classic Rate Monotonic Scheduler Implementation.
Local ISR lock context for acquire and release pairs.
#define THREAD_WAIT_CLASS_PERIOD
Indicates that the thread waits for a period.
#define _Assert(_e)
Assertion similar to assert() controlled via RTEMS_DEBUG instead of NDEBUG.