RTEMS  5.0.0
Modules | Files | Data Structures | Macros | Functions
Deterministic Priority SMP Scheduler

Modules

 Deterministic Priority Affinity SMP Scheduler
 

Files

file  schedulerprioritysmp.h
 Deterministic Priority SMP Scheduler API.
 
file  schedulerprioritysmpimpl.h
 Deterministic Priority SMP Scheduler API.
 
file  schedulerprioritysmp.c
 Deterministic Priority SMP Scheduler Implementation.
 

Data Structures

struct  Scheduler_priority_SMP_Context
 Scheduler context specialization for Deterministic Priority SMP schedulers. More...
 
struct  Scheduler_priority_SMP_Node
 Scheduler node specialization for Deterministic Priority SMP schedulers. More...
 

Macros

#define SCHEDULER_PRIORITY_SMP_ENTRY_POINTS
 Entry points for the Priority SMP Scheduler. More...
 

Functions

void _Scheduler_priority_SMP_Initialize (const Scheduler_Control *scheduler)
 
void _Scheduler_priority_SMP_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
 
void _Scheduler_priority_SMP_Block (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
 
void _Scheduler_priority_SMP_Unblock (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node)
 
void _Scheduler_priority_SMP_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
bool _Scheduler_priority_SMP_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_priority_SMP_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_priority_SMP_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
 
void _Scheduler_priority_SMP_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle)
 
Thread_Control_Scheduler_priority_SMP_Remove_processor (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
 
void _Scheduler_priority_SMP_Yield (const Scheduler_Control *scheduler, Thread_Control *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 thread preempt mode will be ignored.

Macro Definition Documentation

◆ SCHEDULER_PRIORITY_SMP_ENTRY_POINTS

#define SCHEDULER_PRIORITY_SMP_ENTRY_POINTS
Value:
{ \
_Scheduler_priority_SMP_Initialize, \
_Scheduler_default_Schedule, \
_Scheduler_priority_SMP_Yield, \
_Scheduler_priority_SMP_Block, \
_Scheduler_priority_SMP_Unblock, \
_Scheduler_priority_SMP_Update_priority, \
_Scheduler_default_Map_priority, \
_Scheduler_default_Unmap_priority, \
_Scheduler_priority_SMP_Ask_for_help, \
_Scheduler_priority_SMP_Reconsider_help_request, \
_Scheduler_priority_SMP_Withdraw_node, \
_Scheduler_default_Pin_or_unpin, \
_Scheduler_default_Pin_or_unpin, \
_Scheduler_priority_SMP_Add_processor, \
_Scheduler_priority_SMP_Remove_processor, \
_Scheduler_priority_SMP_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 Priority SMP Scheduler.