|
static Scheduler_strong_APA_Context * | _Scheduler_strong_APA_Get_context (const Scheduler_Control *scheduler) |
|
static Scheduler_strong_APA_Context * | _Scheduler_strong_APA_Get_self (Scheduler_Context *context) |
|
static Scheduler_strong_APA_Node * | _Scheduler_strong_APA_Node_downcast (Scheduler_Node *node) |
|
static void | _Scheduler_strong_APA_Do_update (Scheduler_Context *context, Scheduler_Node *node, Priority_Control new_priority) |
|
static bool | _Scheduler_strong_APA_Has_ready (Scheduler_Context *context) |
|
static void | _Scheduler_strong_APA_Set_scheduled (Scheduler_strong_APA_Context *self, Scheduler_Node *executing, const Per_CPU_Control *cpu) |
|
static Scheduler_Node * | _Scheduler_strong_APA_Get_scheduled (const Scheduler_strong_APA_Context *self, const Per_CPU_Control *cpu) |
|
static void | _Scheduler_strong_APA_Allocate_processor (Scheduler_Context *context, Scheduler_Node *scheduled_base, Scheduler_Node *victim_base, Per_CPU_Control *victim_cpu) |
|
static Scheduler_Node * | _Scheduler_strong_APA_Find_highest_ready (Scheduler_strong_APA_Context *self, uint32_t front, uint32_t rear) |
|
static void | _Scheduler_strong_APA_Move_from_ready_to_scheduled (Scheduler_Context *context, Scheduler_Node *ready_to_scheduled) |
|
static Scheduler_Node * | _Scheduler_strong_APA_Get_highest_ready (Scheduler_Context *context, Scheduler_Node *filter) |
|
static Scheduler_Node * | _Scheduler_strong_APA_Get_lowest_scheduled (Scheduler_Context *context, Scheduler_Node *filter_base) |
|
static void | _Scheduler_strong_APA_Extract_from_scheduled (Scheduler_Context *context, Scheduler_Node *node_to_extract) |
|
static void | _Scheduler_strong_APA_Extract_from_ready (Scheduler_Context *context, Scheduler_Node *node_to_extract) |
|
static void | _Scheduler_strong_APA_Insert_ready (Scheduler_Context *context, Scheduler_Node *node_base, Priority_Control insert_priority) |
|
static void | _Scheduler_strong_APA_Move_from_scheduled_to_ready (Scheduler_Context *context, Scheduler_Node *scheduled_to_ready) |
|
static Scheduler_Node * | _Scheduler_strong_APA_Get_lowest_reachable (Scheduler_strong_APA_Context *self, uint32_t front, uint32_t rear, Per_CPU_Control **cpu_to_preempt) |
|
static bool | _Scheduler_strong_APA_Do_enqueue (Scheduler_Context *context, Scheduler_Node *lowest_reachable, Scheduler_Node *node, Priority_Control insert_priority, Per_CPU_Control *cpu_to_preempt) |
|
static bool | _Scheduler_strong_APA_Enqueue (Scheduler_Context *context, Scheduler_Node *node, Priority_Control insert_priority) |
|
static bool | _Scheduler_strong_APA_Enqueue_scheduled (Scheduler_Context *context, Scheduler_Node *node, Priority_Control insert_priority) |
|
static bool | _Scheduler_strong_APA_Do_ask_for_help (Scheduler_Context *context, Thread_Control *the_thread, Scheduler_Node *node) |
|
static void | _Scheduler_strong_APA_Do_set_affinity (Scheduler_Context *context, Scheduler_Node *node_base, void *arg) |
|
void | _Scheduler_strong_APA_Initialize (const Scheduler_Control *scheduler) |
| Initializes the scheduler. More...
|
|
void | _Scheduler_strong_APA_Yield (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
| Performs a yield operation. More...
|
|
void | _Scheduler_strong_APA_Block (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
| Blocks the thread. More...
|
|
void | _Scheduler_strong_APA_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
| Unblocks the thread. More...
|
|
void | _Scheduler_strong_APA_Update_priority (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node) |
| Updates the priority of the node. More...
|
|
bool | _Scheduler_strong_APA_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
| Asks for help. More...
|
|
void | _Scheduler_strong_APA_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node) |
| Reconsiders help request. More...
|
|
void | _Scheduler_strong_APA_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state) |
| Withdraws the node. More...
|
|
static void | _Scheduler_strong_APA_Register_idle (Scheduler_Context *context, Scheduler_Node *idle_base, Per_CPU_Control *cpu) |
|
void | _Scheduler_strong_APA_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle) |
| Adds the idle thread to a processor. More...
|
|
void | _Scheduler_strong_APA_Start_idle (const Scheduler_Control *scheduler, Thread_Control *idle, Per_CPU_Control *cpu) |
| Starts an idle thread. More...
|
|
Thread_Control * | _Scheduler_strong_APA_Remove_processor (const Scheduler_Control *scheduler, Per_CPU_Control *cpu) |
| Removes an idle thread from the given cpu. More...
|
|
void | _Scheduler_strong_APA_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority) |
| Initializes the node with the given priority. More...
|
|
bool | _Scheduler_strong_APA_Set_affinity (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node_base, const Processor_mask *affinity) |
| Sets the affinity . More...
|
|
Strong APA Scheduler Implementation.
Definition in file schedulerstrongapa.c.