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_priority_SMP_Initialize, \
|
||||||
_Scheduler_default_Schedule, \
|
_Scheduler_default_Schedule, \
|
||||||
_Scheduler_priority_SMP_Yield, \
|
_Scheduler_priority_affinity_SMP_Yield, \
|
||||||
_Scheduler_priority_affinity_SMP_Block, \
|
_Scheduler_priority_affinity_SMP_Block, \
|
||||||
_Scheduler_priority_affinity_SMP_Unblock, \
|
_Scheduler_priority_affinity_SMP_Unblock, \
|
||||||
_Scheduler_priority_affinity_SMP_Update_priority, \
|
_Scheduler_priority_affinity_SMP_Update_priority, \
|
||||||
@@ -129,6 +129,12 @@ void _Scheduler_priority_affinity_SMP_Block(
|
|||||||
Scheduler_Node *node
|
Scheduler_Node *node
|
||||||
);
|
);
|
||||||
|
|
||||||
|
void _Scheduler_priority_affinity_SMP_Yield(
|
||||||
|
const Scheduler_Control *scheduler,
|
||||||
|
Thread_Control *thread,
|
||||||
|
Scheduler_Node *node
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unblocks a thread.
|
* @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(
|
Status_Control _Scheduler_priority_affinity_SMP_Set_affinity(
|
||||||
const Scheduler_Control *scheduler,
|
const Scheduler_Control *scheduler,
|
||||||
Thread_Control *thread,
|
Thread_Control *thread,
|
||||||
|
|||||||
Reference in New Issue
Block a user