RTEMS
|
EDF Priority SMP Scheduler. More...
Files | |
file | scheduleredfsmp.h |
EDF SMP Scheduler API. | |
file | scheduleredfsmp.c |
EDF SMP Scheduler Implementation. | |
Classes | |
struct | Scheduler_EDF_SMP_Node |
struct | Scheduler_EDF_SMP_Ready_queue |
struct | Scheduler_EDF_SMP_Context |
Macros | |
#define | SCHEDULER_EDF_SMP_ENTRY_POINTS |
EDF Priority SMP Scheduler.
#define SCHEDULER_EDF_SMP_ENTRY_POINTS |
Definition at line 108 of file scheduleredfsmp.h.
void _Scheduler_EDF_SMP_Add_processor | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | idle | ||
) |
Adds processor.
[in,out] | scheduler | The scheduler instance to add the processor to. |
idle | The idle thread of the processor to add. |
Definition at line 594 of file scheduleredfsmp.c.
bool _Scheduler_EDF_SMP_Ask_for_help | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node | ||
) |
Asks for help operation.
scheduler | The scheduler instance to ask for help. |
the_thread | The thread needing help. |
node | The scheduler node. |
true | Ask for help was successful. |
false | Ask for help was not successful. |
Definition at line 532 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Block | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
Scheduler_Node * | node | ||
) |
Blocks the thread.
scheduler | The scheduler instance. | |
[in,out] | the_thread | The thread to block. |
[in,out] | node | The thread's scheduler node. |
Definition at line 417 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Initialize | ( | const Scheduler_Control * | scheduler | ) |
Initializes the context of the scheduler control.
scheduler | The scheduler control. |
Definition at line 61 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Node_initialize | ( | const Scheduler_Control * | scheduler, |
Scheduler_Node * | node, | ||
Thread_Control * | the_thread, | ||
Priority_Control | priority | ||
) |
Initializes the node with the given priority.
scheduler | The scheduler instance. | |
[out] | node | The node to initialize. |
the_thread | The thread of the scheduler node. | |
priority | The priority for the initialization. |
Definition at line 71 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Pin | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node, | ||
struct Per_CPU_Control * | cpu | ||
) |
Pin thread operation.
scheduler | The scheduler instance of the specified processor. |
the_thread | The thread to pin. |
node | The scheduler node of the thread. |
cpu | The processor to pin the thread. |
Definition at line 675 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Reconsider_help_request | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node | ||
) |
Reconsiders help operation.
scheduler | The scheduler instance to reconsider the help request. |
the_thread | The thread reconsidering a help request. |
node | The scheduler node. |
Definition at line 543 of file scheduleredfsmp.c.
Thread_Control* _Scheduler_EDF_SMP_Remove_processor | ( | const Scheduler_Control * | scheduler, |
struct Per_CPU_Control * | cpu | ||
) |
Removes an idle thread from the given cpu.
scheduler | The scheduler instance. |
cpu | The cpu control to remove from scheduler. |
Definition at line 610 of file scheduleredfsmp.c.
bool _Scheduler_EDF_SMP_Set_affinity | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
Scheduler_Node * | node, | ||
const Processor_mask * | affinity | ||
) |
Checks if the processor set of the scheduler is the subset of the affinity set.
Default implementation of the set affinity scheduler operation.
scheduler | This parameter is unused. |
thread | This parameter is unused. |
node | This parameter is unused. |
affinity | The new processor affinity set for the thread. |
true | The processor set of the scheduler is a subset of the affinity set. |
false | The processor set of the scheduler is not a subset of the affinity set. |
Definition at line 719 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Start_idle | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | idle, | ||
struct Per_CPU_Control * | cpu | ||
) |
Starts an idle thread.
scheduler | The scheduler instance. | |
[in,out] | the_thread | An idle thread. |
cpu | The cpu for the operation. |
Definition at line 657 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Unblock | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
Scheduler_Node * | node | ||
) |
Unblocks the thread.
scheduler | The scheduler instance. | |
[in,out] | the_thread | The thread to unblock. |
[in,out] | node | The thread's scheduler node. |
Definition at line 476 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Unpin | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node, | ||
struct Per_CPU_Control * | cpu | ||
) |
Unpin thread operation.
scheduler | The scheduler instance of the specified processor. |
the_thread | The thread to unpin. |
node | The scheduler node of the thread. |
cpu | The processor to unpin the thread. |
Definition at line 698 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Update_priority | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node | ||
) |
Updates the priority of the node.
scheduler | The scheduler instance. |
the_thread | The thread for the operation. |
node | The thread's scheduler node. |
Definition at line 512 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Withdraw_node | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Scheduler_Node * | node, | ||
Thread_Scheduler_state | next_state | ||
) |
Withdraws node operation.
scheduler | The scheduler instance to withdraw the node. |
the_thread | The thread using the node. |
node | The scheduler node to withdraw. |
next_state | The next thread scheduler state in case the node is scheduled. |
Definition at line 559 of file scheduleredfsmp.c.
void _Scheduler_EDF_SMP_Yield | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
Scheduler_Node * | node | ||
) |
Performs the yield of a thread.
scheduler | The scheduler instance. | |
[in,out] | the_thread | The thread that performed the yield operation. |
node | The scheduler node of the_thread. |
Definition at line 625 of file scheduleredfsmp.c.