17 #ifndef _RTEMS_SCORE_SCHEDULEREDFSMP_H 18 #define _RTEMS_SCORE_SCHEDULEREDFSMP_H 89 int64_t generations[ 2 ];
106 #define SCHEDULER_EDF_SMP_ENTRY_POINTS \ 108 _Scheduler_EDF_SMP_Initialize, \ 109 _Scheduler_default_Schedule, \ 110 _Scheduler_EDF_SMP_Yield, \ 111 _Scheduler_EDF_SMP_Block, \ 112 _Scheduler_EDF_SMP_Unblock, \ 113 _Scheduler_EDF_SMP_Update_priority, \ 114 _Scheduler_EDF_Map_priority, \ 115 _Scheduler_EDF_Unmap_priority, \ 116 _Scheduler_EDF_SMP_Ask_for_help, \ 117 _Scheduler_EDF_SMP_Reconsider_help_request, \ 118 _Scheduler_EDF_SMP_Withdraw_node, \ 119 _Scheduler_EDF_SMP_Pin, \ 120 _Scheduler_EDF_SMP_Unpin, \ 121 _Scheduler_EDF_SMP_Add_processor, \ 122 _Scheduler_EDF_SMP_Remove_processor, \ 123 _Scheduler_EDF_SMP_Node_initialize, \ 124 _Scheduler_default_Node_destroy, \ 125 _Scheduler_EDF_Release_job, \ 126 _Scheduler_EDF_Cancel_job, \ 127 _Scheduler_default_Tick, \ 128 _Scheduler_EDF_SMP_Start_idle, \ 129 _Scheduler_EDF_SMP_Set_affinity \ 134 void _Scheduler_EDF_SMP_Node_initialize(
141 void _Scheduler_EDF_SMP_Block(
147 void _Scheduler_EDF_SMP_Unblock(
153 void _Scheduler_EDF_SMP_Update_priority(
159 bool _Scheduler_EDF_SMP_Ask_for_help(
165 void _Scheduler_EDF_SMP_Reconsider_help_request(
171 void _Scheduler_EDF_SMP_Withdraw_node(
175 Thread_Scheduler_state next_state
178 void _Scheduler_EDF_SMP_Pin(
185 void _Scheduler_EDF_SMP_Unpin(
192 void _Scheduler_EDF_SMP_Add_processor(
202 void _Scheduler_EDF_SMP_Yield(
208 void _Scheduler_EDF_SMP_Start_idle(
214 bool _Scheduler_EDF_SMP_Set_affinity(
218 const Processor_mask *affinity
uint8_t ready_queue_index
The ready queue index depending on the processor affinity and pinning of the thread.
Definition: scheduleredfsmp.h:53
Scheduler context specialization for SMP schedulers.
Definition: schedulersmp.h:44
uint8_t pinning_ready_queue_index
Ready queue index according to thread pinning.
Definition: scheduleredfsmp.h:63
Chain_Control Affine_queues
Chain of ready queues with affine threads to determine the highest priority ready thread...
Definition: scheduleredfsmp.h:95
Definition: scheduleredfsmp.h:83
Data Related to the Manipulation of Threads for the EDF Scheduler.
uint64_t Priority_Control
The thread priority control.
Definition: priority.h:66
Definition: scheduleredfsmp.h:36
Per CPU Core Structure.
Definition: percpu.h:290
Scheduler node specialization for SMP schedulers.
Definition: schedulersmp.h:98
Definition: scheduleredfsmp.h:66
int64_t generation
Generation number to ensure FIFO/LIFO order for threads of the same priority across different ready q...
Definition: scheduleredfsmp.h:43
Scheduler_EDF_SMP_Node * scheduled
The scheduled thread of the corresponding processor.
Definition: scheduleredfsmp.h:80
RBTree_Control Queue
The ready threads of the corresponding affinity.
Definition: scheduleredfsmp.h:75
Scheduler control.
Definition: scheduler.h:266
Scheduler node for per-thread data.
Definition: schedulernode.h:65
Chain_Node Node
Chain node for Scheduler_SMP_Context::Affine_queues.
Definition: scheduleredfsmp.h:70
Constants and Structures Associated with the Scheduler.
uint8_t affinity_ready_queue_index
Ready queue index according to thread affinity.
Definition: scheduleredfsmp.h:58