RTEMS  5.0.0
Files | Data Structures | Macros | Functions
Strong APA Scheduler

Files

file  schedulerstrongapa.h
 Strong APA Scheduler API.
 
file  schedulerstrongapa.c
 Strong APA Scheduler Implementation.
 

Data Structures

struct  Scheduler_strong_APA_Context
 Scheduler context specialization for Strong APA schedulers. More...
 
struct  Scheduler_strong_APA_Node
 Scheduler node specialization for Strong APA schedulers. More...
 

Macros

#define SCHEDULER_STRONG_APA_ENTRY_POINTS
 Entry points for the Strong APA Scheduler. More...
 

Functions

void _Scheduler_strong_APA_Initialize (const Scheduler_Control *scheduler)
 
void _Scheduler_strong_APA_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
 
void _Scheduler_strong_APA_Block (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_strong_APA_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_strong_APA_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
bool _Scheduler_strong_APA_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_strong_APA_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_strong_APA_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
 
void _Scheduler_strong_APA_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle)
 
Thread_Control_Scheduler_strong_APA_Remove_processor (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
 
void _Scheduler_strong_APA_Yield (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 

Detailed Description

This is an implementation of the global fixed priority scheduler (G-FP). It uses one ready chain per priority to ensure constant time insert operations. The scheduled chain uses linear insert operations and has at most processor count entries. Since the processor and priority count are constants all scheduler operations complete in a bounded execution time.

The the_thread preempt mode will be ignored.

Macro Definition Documentation

◆ SCHEDULER_STRONG_APA_ENTRY_POINTS

#define SCHEDULER_STRONG_APA_ENTRY_POINTS
Value:
{ \
_Scheduler_strong_APA_Initialize, \
_Scheduler_default_Schedule, \
_Scheduler_strong_APA_Yield, \
_Scheduler_strong_APA_Block, \
_Scheduler_strong_APA_Unblock, \
_Scheduler_strong_APA_Update_priority, \
_Scheduler_default_Map_priority, \
_Scheduler_default_Unmap_priority, \
_Scheduler_strong_APA_Ask_for_help, \
_Scheduler_strong_APA_Reconsider_help_request, \
_Scheduler_strong_APA_Withdraw_node, \
_Scheduler_default_Pin_or_unpin, \
_Scheduler_default_Pin_or_unpin, \
_Scheduler_strong_APA_Add_processor, \
_Scheduler_strong_APA_Remove_processor, \
_Scheduler_strong_APA_Node_initialize, \
_Scheduler_default_Node_destroy, \
_Scheduler_default_Release_job, \
_Scheduler_default_Cancel_job, \
_Scheduler_default_Tick, \
_Scheduler_SMP_Start_idle \
SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \
}

Entry points for the Strong APA Scheduler.