21 #ifndef _RTEMS_SCORE_SCHEDULERPRIORITY_H 22 #define _RTEMS_SCORE_SCHEDULERPRIORITY_H 45 #define SCHEDULER_PRIORITY_ENTRY_POINTS \ 47 _Scheduler_priority_Initialize, \ 48 _Scheduler_priority_Schedule, \ 49 _Scheduler_priority_Yield, \ 50 _Scheduler_priority_Block, \ 51 _Scheduler_priority_Unblock, \ 52 _Scheduler_priority_Update_priority, \ 53 _Scheduler_default_Map_priority, \ 54 _Scheduler_default_Unmap_priority, \ 55 SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP \ 56 _Scheduler_priority_Node_initialize, \ 57 _Scheduler_default_Node_destroy, \ 58 _Scheduler_default_Release_job, \ 59 _Scheduler_default_Cancel_job, \ 60 _Scheduler_default_Tick, \ 61 _Scheduler_default_Start_idle \ 62 SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \ void _Scheduler_priority_Node_initialize(const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
Initializes the node with the given priority.
uint64_t Priority_Control
The thread priority control.
Chain_Control * ready_chain
void _Scheduler_priority_Initialize(const Scheduler_Control *scheduler)
Initializes the priority scheduler.
Priority_bit_map_Information Priority_map
void _Scheduler_priority_Update_priority(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *base_node)
Updates the priority of the node.
Scheduler_Node Base
Basic scheduler node.
void _Scheduler_priority_Unblock(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Unblocks the thread.
unsigned int current_priority
The thread priority currently used by the scheduler.
Priority_bit_map_Control Bit_map
Bit map to indicate non-empty ready queues.
Data for ready queue operations.
Scheduler_priority_Ready_queue Ready_queue
The associated ready queue of this node.
void _Scheduler_priority_Yield(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Performs the yield of a thread.
void _Scheduler_priority_Block(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Blocks the thread.
Scheduler node specialization for Deterministic Priority schedulers.
void _Scheduler_priority_Schedule(const Scheduler_Control *scheduler, Thread_Control *the_thread)
Sets the heir thread to be the next ready thread.
Scheduler_Context Base
Basic scheduler context.
Manipulation Routines for the Bitmap Priority Queue Implementation.
Scheduler node for per-thread data.
Constants and Structures Associated with the Scheduler.