![]() |
RTEMS 5.2
|
Deterministic Priority Affinity SMP Scheduler. More...
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... | |
Deterministic Priority Affinity SMP Scheduler.
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_Add_processor | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | idle | ||
| ) |
Adds idle to scheduler.
| [in,out] | scheduler | The scheduler instance to add the processor to. |
| idle | The idle thread control. |
| bool _Scheduler_priority_affinity_SMP_Ask_for_help | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | the_thread, | ||
| Scheduler_Node * | node | ||
| ) |
Asks for help.
| 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. |
| void _Scheduler_priority_affinity_SMP_Block | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | thread, | ||
| Scheduler_Node * | node | ||
| ) |
Blocks a thread.
| scheduler | The scheduler instance. | |
| [in,out] | The | thread to block. |
| [in,out] | node | The scheduler node of the thread. |
| 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.
| scheduler | Points to the scheduler specific information. | |
| [in,out] | node | The node the scheduler is allocating management memory for. |
| the_thread | The thread of the node. | |
| priority | The thread priority. |
| void _Scheduler_priority_affinity_SMP_Reconsider_help_request | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | the_thread, | ||
| Scheduler_Node * | node | ||
| ) |
Reconsiders help.
| scheduler | The scheduler instance to reconsider the help request. |
| the_thread | The thread reconsidering a help request. |
| node | The scheduler node. |
| Thread_Control * _Scheduler_priority_affinity_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. |
| bool _Scheduler_priority_affinity_SMP_Set_affinity | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | thread, | ||
| Scheduler_Node * | node, | ||
| const Processor_mask * | affinity | ||
| ) |
Sets affinity for the priority affinity SMP scheduler.
| scheduler | The scheduler of the thread. | |
| [in,out] | thread | The associated thread. |
| [in,out] | node | The scheduler node. |
| affinity | The new affinity set. |
| true | if successful |
| false | if unsuccessful |
| void _Scheduler_priority_affinity_SMP_Unblock | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | thread, | ||
| Scheduler_Node * | node | ||
| ) |
Unblocks a thread.
| scheduler | The scheduler instance. | |
| [in,out] | The | thread to unblock. |
| [in,out] | node | The scheduler node of the thread. |
| void _Scheduler_priority_affinity_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 of the node. | |
| [in,out] | The | node to update the priority of. |
| void _Scheduler_priority_affinity_SMP_Withdraw_node | ( | const Scheduler_Control * | scheduler, |
| Thread_Control * | the_thread, | ||
| Scheduler_Node * | node, | ||
| Thread_Scheduler_state | next_state | ||
| ) |
Withdraws node.
| 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 the case the node is scheduled. |