RTEMS CPU Kit with SuperCore
4.11.3
|
This is an extension of the Deterministic Priority 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... | |
Functions | |
void | _Scheduler_priority_affinity_SMP_Node_initialize (const Scheduler_Control *scheduler, Thread_Control *thread) |
Initializes per thread scheduler information. More... | |
void | _Scheduler_priority_affinity_SMP_Block (const Scheduler_Control *scheduler, Thread_Control *thread) |
SMP Priority Affinity Scheduler Block Operation. More... | |
Thread_Control * | _Scheduler_priority_affinity_SMP_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread) |
SMP Priority Affinity Scheduler Unblock Operation. More... | |
bool | _Scheduler_priority_affinity_SMP_Get_affinity (const Scheduler_Control *scheduler, Thread_Control *thread, size_t cpusetsize, cpu_set_t *cpuset) |
Get affinity for the priority affinity SMP scheduler. More... | |
Thread_Control * | _Scheduler_priority_affinity_SMP_Change_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it) |
Change priority for the priority affinity SMP scheduler. More... | |
Thread_Control * | _Scheduler_priority_affinity_SMP_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *offers_help, Thread_Control *needs_help) |
bool | _Scheduler_priority_affinity_SMP_Set_affinity (const Scheduler_Control *scheduler, Thread_Control *thread, size_t cpusetsize, const cpu_set_t *cpuset) |
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_Block | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread | ||
) |
SMP Priority Affinity Scheduler Block Operation.
This method is the block operation for this scheduler.
[in] | scheduler | is the scheduler instance information |
[in] | thread | is the thread to block |
Thread_Control* _Scheduler_priority_affinity_SMP_Change_priority | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | the_thread, | ||
Priority_Control | new_priority, | ||
bool | prepend_it | ||
) |
Change priority for the priority affinity SMP scheduler.
[in] | scheduler | The scheduler of the thread. |
[in] | the_thread | The associated thread. |
[in] | new_priority | The new priority for the thread. |
[in] | prepend_it | Append or prepend the thread to its priority FIFO. |
bool _Scheduler_priority_affinity_SMP_Get_affinity | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
size_t | cpusetsize, | ||
cpu_set_t * | cpuset | ||
) |
Get affinity for the priority affinity SMP scheduler.
[in] | scheduler | The scheduler of the thread. |
[in] | thread | The associated thread. |
[in] | cpusetsize | The size of the cpuset. |
[in,out] | cpuset | The associated affinity set. |
0 | Successfully got cpuset |
-1 | The cpusetsize is invalid for the system |
void _Scheduler_priority_affinity_SMP_Node_initialize | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread | ||
) |
Initializes per thread scheduler information.
This routine allocates thread->scheduler.
[in] | scheduler | points to the scheduler specific information. |
[in] | thread | is the thread the scheduler is allocating management memory for. |
bool _Scheduler_priority_affinity_SMP_Set_affinity | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread, | ||
size_t | cpusetsize, | ||
const cpu_set_t * | cpuset | ||
) |
Set affinity for the priority affinity SMP scheduler.
[in] | scheduler | The scheduler of the thread. |
[in] | thread | The associated thread. |
[in] | cpusetsize | The size of the cpuset. |
[in] | cpuset | Affinity new affinity set. |
true | if successful |
false | if unsuccessful |
Thread_Control* _Scheduler_priority_affinity_SMP_Unblock | ( | const Scheduler_Control * | scheduler, |
Thread_Control * | thread | ||
) |
SMP Priority Affinity Scheduler Unblock Operation.
This method is the unblock operation for this scheduler.
[in] | scheduler | is the scheduler instance information |
[in] | thread | is the thread to unblock |