RTEMS
5.0.0
|
Files | |
file | schedulerpriorityaffinitysmp.h |
Deterministic Priority Affinity SMP Scheduler API. | |
file | schedulerpriorityaffinitysmp.c |
Deterministic Priority Affinity SMP Scheduler Implementation. | |
Data Structures | |
struct | Scheduler_priority_affinity_SMP_Node |
Scheduler node specialization for Deterministic Priority Affinity SMP schedulers. More... | |
Macros | |
#define | SCHEDULER_PRIORITY_AFFINITY_SMP_ENTRY_POINTS |
Entry points for the Deterministic Priority Affinity SMP Scheduler. More... | |
Functions | |
void | _Scheduler_priority_affinity_SMP_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority) |
Initializes per thread scheduler information. More... | |
void | _Scheduler_priority_affinity_SMP_Block (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
void | _Scheduler_priority_affinity_SMP_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
void | _Scheduler_priority_affinity_SMP_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
bool | _Scheduler_priority_affinity_SMP_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
void | _Scheduler_priority_affinity_SMP_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
void | _Scheduler_priority_affinity_SMP_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state) |
void | _Scheduler_priority_affinity_SMP_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle) |
Thread_Control * | _Scheduler_priority_affinity_SMP_Remove_processor (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu) |
bool | _Scheduler_priority_affinity_SMP_Set_affinity (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node, const Processor_mask *affinity) |
Set affinity for the priority affinity SMP scheduler. More... | |
This is an extension of the Deterministic Priority SMP Scheduler. which is an implementation of the global fixed priority scheduler (G-FP). It adds thread to core affinity support.
#define SCHEDULER_PRIORITY_AFFINITY_SMP_ENTRY_POINTS |
Entry points for the Deterministic Priority Affinity SMP Scheduler.
void _Scheduler_priority_affinity_SMP_Node_initialize | ( | const Scheduler_Control * | scheduler, |
Scheduler_Node * | node, | ||
Thread_Control * | the_thread, | ||
Priority_Control | priority | ||
) |
Initializes per thread scheduler information.
This routine allocates thread->scheduler.
[in] | scheduler | points to the scheduler specific information. |
[in] | node | is the node the scheduler is allocating management memory for. |
[in] | the_thread | the thread of the node. |
[in] | priority | is the thread priority. |
bool _Scheduler_priority_affinity_SMP_Set_affinity | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
Scheduler_Node * | node, | ||
const Processor_mask * | affinity | ||
) |
Set affinity for the priority affinity SMP scheduler.
[in] | scheduler | The scheduler of the thread. |
[in] | thread | The associated thread. |
[in] | affinity | The new affinity set. |
true | if successful |
false | if unsuccessful |