RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions
Simple Priority Scheduler

This group contains the Simple Priority Scheduler implementation. More...

Files

file  schedulersimple.h
 This header file provides interfaces of the Simple Priority Scheduler which are used by the implementation and the Application Configuration.
 
file  schedulersimpleimpl.h
 This header file provides interfaces of the Simple Priority Scheduler which are only used by the implementation.
 
file  schedulersimple.c
 This source file contains the implementation of _Scheduler_simple_Initialize().
 
file  schedulersimpleblock.c
 This source file contains the implementation of _Scheduler_simple_Block().
 
file  schedulersimplechangepriority.c
 This source file contains the implementation of _Scheduler_simple_Update_priority().
 
file  schedulersimpleschedule.c
 This source file contains the implementation of _Scheduler_simple_Schedule().
 
file  schedulersimpleunblock.c
 This source file contains the implementation of _Scheduler_simple_Unblock().
 
file  schedulersimpleyield.c
 This source file contains the implementation of _Scheduler_simple_Yield().
 

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)
 Initializes simple scheduler.
 
void _Scheduler_simple_Schedule (const Scheduler_Control *scheduler, Thread_Control *the_thread)
 Schedules threads.
 
void _Scheduler_simple_Yield (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Performs the yield of a thread.
 
void _Scheduler_simple_Block (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Blocks the thread.
 
void _Scheduler_simple_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Unblocks the thread.
 
void _Scheduler_simple_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Updates the priority of the node.
 

Detailed Description

This group contains the Simple Priority Scheduler implementation.

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_SMP_OPERATIONS \
_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_Start_idle /* start idle entry point */ \
}
void _Scheduler_simple_Initialize(const Scheduler_Control *scheduler)
Initializes simple scheduler.
Definition: schedulersimple.c:45
void _Scheduler_simple_Block(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Blocks the thread.
Definition: schedulersimpleblock.c:44
void _Scheduler_simple_Unblock(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Unblocks the thread.
Definition: schedulersimpleunblock.c:45
void _Scheduler_simple_Schedule(const Scheduler_Control *scheduler, Thread_Control *the_thread)
Schedules threads.
Definition: schedulersimpleschedule.c:44
void _Scheduler_simple_Update_priority(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Updates the priority of the node.
Definition: schedulersimplechangepriority.c:44
void _Scheduler_simple_Yield(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
Performs the yield of a thread.
Definition: schedulersimpleyield.c:44
void _Scheduler_default_Release_job(const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Node *priority_node, uint64_t deadline, Thread_queue_Context *queue_context)
Does nothing.
Definition: schedulerdefaultreleasejob.c:44
void _Scheduler_default_Node_destroy(const Scheduler_Control *scheduler, Scheduler_Node *node)
Does nothing.
Definition: schedulerdefaultnodedestroy.c:45
Priority_Control _Scheduler_default_Map_priority(const Scheduler_Control *scheduler, Priority_Control priority)
Returns the scheduler internal thread priority mapped by SCHEDULER_PRIORITY_MAP().
Definition: schedulerdefaultmappriority.c:43
#define SCHEDULER_DEFAULT_SET_AFFINITY_OPERATION
This define provides the default implementation for the SMP-specific set affinity operation.
Definition: scheduler.h:689
Priority_Control _Scheduler_default_Unmap_priority(const Scheduler_Control *scheduler, Priority_Control priority)
Returns the user visible thread priority unmapped by SCHEDULER_PRIORITY_UNMAP().
Definition: schedulerdefaultmappriority.c:51
void _Scheduler_default_Cancel_job(const Scheduler_Control *scheduler, Thread_Control *the_thread, Priority_Node *priority_node, Thread_queue_Context *queue_context)
Does nothing.
Definition: schedulerdefaultreleasejob.c:59
void _Scheduler_default_Start_idle(const Scheduler_Control *scheduler, Thread_Control *the_thread, struct Per_CPU_Control *cpu)
Starts an idle thread.
Definition: schedulerdefaultstartidle.c:43

Entry points for Scheduler Simple

Function Documentation

◆ _Scheduler_simple_Block()

void _Scheduler_simple_Block ( const Scheduler_Control scheduler,
Thread_Control the_thread,
Scheduler_Node node 
)

Blocks the thread.

Parameters
schedulerThe scheduler instance.
[in,out]the_threadThe thread to block.
[in,out]nodeThe thread's scheduler node.

◆ _Scheduler_simple_Initialize()

void _Scheduler_simple_Initialize ( const Scheduler_Control scheduler)

Initializes simple scheduler.

This routine initializes the simple scheduler.

Parameters
schedulerThe scheduler to be initialized.

◆ _Scheduler_simple_Schedule()

void _Scheduler_simple_Schedule ( const Scheduler_Control scheduler,
Thread_Control the_thread 
)

Schedules threads.

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
schedulerThe scheduler instance.
the_threadcausing the scheduling operation.

◆ _Scheduler_simple_Unblock()

void _Scheduler_simple_Unblock ( const Scheduler_Control scheduler,
Thread_Control the_thread,
Scheduler_Node node 
)

Unblocks the thread.

Parameters
schedulerThe scheduler instance.
[in,out]the_threadThe thread to unblock.
[in,out]nodeThe thread's scheduler node.

◆ _Scheduler_simple_Update_priority()

void _Scheduler_simple_Update_priority ( const Scheduler_Control scheduler,
Thread_Control the_thread,
Scheduler_Node node 
)

Updates the priority of the node.

Parameters
schedulerThe scheduler instance.
the_threadThe thread for the operation.
nodeThe thread's scheduler node.

◆ _Scheduler_simple_Yield()

void _Scheduler_simple_Yield ( const Scheduler_Control scheduler,
Thread_Control the_thread,
Scheduler_Node node 
)

Performs the yield of a thread.

Parameters
schedulerThe scheduler instance.
[in,out]the_threadThe thread that performed the yield operation.
nodeThe scheduler node of the_thread.