39#ifndef _RTEMS_SCORE_SCHEDULERUNIIMPL_H
40#define _RTEMS_SCORE_SCHEDULERUNIIMPL_H
60static inline void _Scheduler_uniprocessor_Update_heir(
73 heir->
Scheduler.state = THREAD_SCHEDULER_BLOCKED;
74 new_heir->
Scheduler.state = THREAD_SCHEDULER_SCHEDULED;
76 _Thread_Update_CPU_time_used( heir, _Thread_Get_CPU( heir ) );
77 _Thread_Heir = new_heir;
78 _Thread_Dispatch_necessary =
true;
89static inline void _Scheduler_uniprocessor_Update_heir_if_necessary(
95 if ( heir != new_heir ) {
96 _Scheduler_uniprocessor_Update_heir( heir, new_heir );
107static inline void _Scheduler_uniprocessor_Update_heir_if_preemptible(
113 _Scheduler_uniprocessor_Update_heir( heir, new_heir );
126static inline void _Scheduler_uniprocessor_Block(
138 ( *extract )( scheduler, the_thread, node );
142 if ( _Thread_Is_heir( the_thread ) ) {
145 highest_ready = ( *get_highest_ready )( scheduler );
146 _Scheduler_uniprocessor_Update_heir( _Thread_Heir, highest_ready );
157static inline void _Scheduler_uniprocessor_Unblock(
172 if ( priority < _Thread_Get_priority( heir ) ) {
173 _Scheduler_uniprocessor_Update_heir_if_preemptible( heir, the_thread );
184static inline void _Scheduler_uniprocessor_Schedule(
191 highest_ready = ( *get_highest_ready )( scheduler );
192 _Scheduler_uniprocessor_Update_heir_if_preemptible(
204static inline void _Scheduler_uniprocessor_Yield(
211 highest_ready = ( *get_highest_ready )( scheduler );
212 _Scheduler_uniprocessor_Update_heir_if_necessary( highest_ready );
#define _Assert(_e)
Assertion similar to assert() controlled via RTEMS_DEBUG instead of NDEBUG and static analysis runs.
Definition: assert.h:96
uint64_t Priority_Control
The thread priority control.
Definition: priority.h:91
This header file provides interfaces of the Scheduler Handler which are only used by the implementati...
Scheduler node for per-thread data.
Definition: schedulernode.h:94
Scheduler control.
Definition: scheduler.h:335
Thread_Scheduler_control Scheduler
Scheduler related control.
Definition: thread.h:849
bool is_preemptible
Definition: thread.h:889