RTEMS  5.0.0
Data Structures | Macros | Functions
Simple Priority Scheduler

Data Structures

struct  Scheduler_simple_Context
 Simple scheduler context. More...
 

Macros

#define SCHEDULER_SIMPLE_MAXIMUM_PRIORITY   255
 
#define SCHEDULER_SIMPLE_ENTRY_POINTS
 

Functions

void _Scheduler_simple_Initialize (const Scheduler_Control *scheduler)
 Initialize simple scheduler. More...
 
void _Scheduler_simple_Schedule (const Scheduler_Control *scheduler, Thread_Control *the_thread)
 
void _Scheduler_simple_Yield (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_simple_Block (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_simple_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
void _Scheduler_simple_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
RTEMS_INLINE_ROUTINE Scheduler_simple_Context_Scheduler_simple_Get_context (const Scheduler_Control *scheduler)
 
RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Priority_less_equal (const void *to_insert, const Chain_Node *next)
 
RTEMS_INLINE_ROUTINE void _Scheduler_simple_Insert (Chain_Control *chain, Thread_Control *to_insert, unsigned int insert_priority)
 
RTEMS_INLINE_ROUTINE void _Scheduler_simple_Extract (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 
RTEMS_INLINE_ROUTINE void _Scheduler_simple_Schedule_body (const Scheduler_Control *scheduler, Thread_Control *the_thread, bool force_dispatch)
 

Detailed Description

Macro Definition Documentation

◆ SCHEDULER_SIMPLE_ENTRY_POINTS

#define SCHEDULER_SIMPLE_ENTRY_POINTS
Value:
{ \
_Scheduler_simple_Initialize, /* initialize entry point */ \
_Scheduler_simple_Schedule, /* schedule entry point */ \
_Scheduler_simple_Yield, /* yield entry point */ \
_Scheduler_simple_Block, /* block entry point */ \
_Scheduler_simple_Unblock, /* unblock entry point */ \
_Scheduler_simple_Update_priority, /* update priority entry point */ \
_Scheduler_default_Map_priority, /* map priority entry point */ \
_Scheduler_default_Unmap_priority, /* unmap priority entry point */ \
_Scheduler_default_Node_initialize, /* node initialize entry point */ \
_Scheduler_default_Node_destroy, /* node destroy entry point */ \
_Scheduler_default_Release_job, /* new period of task */ \
_Scheduler_default_Cancel_job, /* cancel period of task */ \
_Scheduler_default_Tick, /* tick entry point */ \
_Scheduler_default_Start_idle /* start idle entry point */ \
SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \
}
void _Scheduler_default_Node_initialize(const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
Performs the scheduler base node initialization.
Definition: schedulerdefaultnodeinit.c:24

Entry points for Scheduler Simple

Function Documentation

◆ _Scheduler_simple_Initialize()

void _Scheduler_simple_Initialize ( const Scheduler_Control scheduler)

Initialize simple scheduler.

This routine initializes the simple scheduler.

◆ _Scheduler_simple_Schedule()

void _Scheduler_simple_Schedule ( const Scheduler_Control scheduler,
Thread_Control the_thread 
)

This routine sets the heir thread to be the next ready thread on the ready queue by getting the first node in the scheduler information.

Parameters
[in]schedulerThe scheduler instance.
[in]the_threadcausing the scheduling operation.