forked from Imagelibrary/rtems
score: Add SMP priority affinity scheduler yield
This commit is contained in:
@@ -75,7 +75,7 @@ extern "C" {
|
||||
{ \
|
||||
_Scheduler_priority_SMP_Initialize, \
|
||||
_Scheduler_default_Schedule, \
|
||||
_Scheduler_priority_SMP_Yield, \
|
||||
_Scheduler_priority_affinity_SMP_Yield, \
|
||||
_Scheduler_priority_affinity_SMP_Block, \
|
||||
_Scheduler_priority_affinity_SMP_Unblock, \
|
||||
_Scheduler_priority_affinity_SMP_Update_priority, \
|
||||
@@ -129,6 +129,12 @@ void _Scheduler_priority_affinity_SMP_Block(
|
||||
Scheduler_Node *node
|
||||
);
|
||||
|
||||
void _Scheduler_priority_affinity_SMP_Yield(
|
||||
const Scheduler_Control *scheduler,
|
||||
Thread_Control *thread,
|
||||
Scheduler_Node *node
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Unblocks a thread.
|
||||
*
|
||||
|
||||
@@ -619,6 +619,24 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Remove_processor(
|
||||
);
|
||||
}
|
||||
|
||||
void _Scheduler_priority_affinity_SMP_Yield(
|
||||
const Scheduler_Control *scheduler,
|
||||
Thread_Control *thread,
|
||||
Scheduler_Node *node
|
||||
)
|
||||
{
|
||||
Scheduler_Context *context = _Scheduler_Get_context( scheduler );
|
||||
|
||||
_Scheduler_SMP_Yield(
|
||||
context,
|
||||
thread,
|
||||
node,
|
||||
_Scheduler_priority_SMP_Extract_from_ready,
|
||||
_Scheduler_priority_affinity_SMP_Enqueue,
|
||||
_Scheduler_priority_affinity_SMP_Enqueue_scheduled
|
||||
);
|
||||
}
|
||||
|
||||
Status_Control _Scheduler_priority_affinity_SMP_Set_affinity(
|
||||
const Scheduler_Control *scheduler,
|
||||
Thread_Control *thread,
|
||||
|
||||
Reference in New Issue
Block a user