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.
Definition: schedulerpriority.c:35
uint64_t Priority_Control
The thread priority control.
Definition: priority.h:70
Chain_Control * ready_chain
Definition: schedulerpriority.h:92
Scheduler context.
Definition: scheduler.h:252
Definition: schedulerpriority.h:65
Definition: prioritybitmap.h:42
void _Scheduler_priority_Initialize(const Scheduler_Control *scheduler)
Initializes the priority scheduler.
Definition: schedulerpriority.c:23
Priority_bit_map_Information Priority_map
Definition: schedulerpriority.h:95
void _Scheduler_priority_Update_priority(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *base_node)
Updates the priority of the node.
Definition: schedulerprioritychangepriority.c:24
Scheduler_Node Base
Basic scheduler node.
Definition: schedulerpriority.h:105
void _Scheduler_priority_Unblock(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Unblocks the thread.
Definition: schedulerpriorityunblock.c:25
unsigned int current_priority
The thread priority currently used by the scheduler.
Definition: schedulerpriority.h:89
Priority_bit_map_Control Bit_map
Bit map to indicate non-empty ready queues.
Definition: schedulerpriority.h:74
Data for ready queue operations.
Definition: schedulerpriority.h:85
Scheduler_priority_Ready_queue Ready_queue
The associated ready queue of this node.
Definition: schedulerpriority.h:110
void _Scheduler_priority_Yield(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Performs the yield of a thread.
Definition: schedulerpriorityyield.c:24
void _Scheduler_priority_Block(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Blocks the thread.
Definition: schedulerpriorityblock.c:26
Scheduler node specialization for Deterministic Priority schedulers.
Definition: schedulerpriority.h:101
void _Scheduler_priority_Schedule(const Scheduler_Control *scheduler, Thread_Control *the_thread)
Sets the heir thread to be the next ready thread.
Definition: schedulerpriorityschedule.c:24
Scheduler_Context Base
Basic scheduler context.
Definition: schedulerpriority.h:69
Manipulation Routines for the Bitmap Priority Queue Implementation.
Scheduler control.
Definition: scheduler.h:269
Scheduler node for per-thread data.
Definition: schedulernode.h:79
Constants and Structures Associated with the Scheduler.