RTEMS CPU Kit with SuperCore  4.11.2
Functions
schedulerimpl.h File Reference

Inlined Routines Associated with the Manipulation of the Scheduler. More...

#include <rtems/score/scheduler.h>
#include <rtems/score/cpusetimpl.h>
#include <rtems/score/smpimpl.h>
#include <rtems/score/threadimpl.h>
Include dependency graph for schedulerimpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void _Scheduler_Handler_initialization (void)
 Initializes the scheduler to the policy chosen by the user. More...
 
RTEMS_INLINE_ROUTINE Scheduler_Context_Scheduler_Get_context (const Scheduler_Control *scheduler)
 
RTEMS_INLINE_ROUTINE const Scheduler_Control_Scheduler_Get (const Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE const Scheduler_Control_Scheduler_Get_own (const Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE const Scheduler_Control_Scheduler_Get_by_CPU_index (uint32_t cpu_index)
 
RTEMS_INLINE_ROUTINE const Scheduler_Control_Scheduler_Get_by_CPU (const Per_CPU_Control *cpu)
 
RTEMS_INLINE_ROUTINE Scheduler_Node_Scheduler_Thread_get_own_node (const Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Schedule (Thread_Control *the_thread)
 The preferred method to add a new scheduler is to define the jump table entries and add a case to the _Scheduler_Initialize routine. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Yield (Thread_Control *the_thread)
 Scheduler yield with a particular thread. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Block (Thread_Control *the_thread)
 Blocks a thread with respect to the scheduler. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Unblock (Thread_Control *the_thread)
 Unblocks a thread with respect to the scheduler. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Change_priority (Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it)
 Propagates a priority change of a thread to the scheduler. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Node_initialize (const Scheduler_Control *scheduler, Thread_Control *the_thread)
 Initializes a scheduler node. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Node_destroy (const Scheduler_Control *scheduler, Thread_Control *the_thread)
 Destroys a scheduler node. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Update_priority (Thread_Control *the_thread, Priority_Control new_priority)
 Updates the scheduler about a priority change of a not ready thread. More...
 
RTEMS_INLINE_ROUTINE int _Scheduler_Priority_compare (const Scheduler_Control *scheduler, Priority_Control p1, Priority_Control p2)
 Compares two priority values. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Release_job (Thread_Control *the_thread, uint32_t length)
 Releases a job of a thread with respect to the scheduler. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Tick (void)
 Scheduler method invoked at each clock tick. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Start_idle (const Scheduler_Control *scheduler, Thread_Control *the_thread, Per_CPU_Control *cpu)
 Starts the idle thread for a particular processor. More...
 
RTEMS_INLINE_ROUTINE bool _Scheduler_Has_processor_ownership (const Scheduler_Control *scheduler, uint32_t cpu_index)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Set (const Scheduler_Control *scheduler, Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Update_heir (Thread_Control *new_heir, bool force_dispatch)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Generic_block (const Scheduler_Control *scheduler, Thread_Control *the_thread, void(*extract)(const Scheduler_Control *, Thread_Control *), void(*schedule)(const Scheduler_Control *, Thread_Control *, bool))
 
RTEMS_INLINE_ROUTINE bool _Scheduler_Is_priority_lower_than (const Scheduler_Control *scheduler, Priority_Control p1, Priority_Control p2)
 Returns true if p1 encodes a lower priority than p2 in the intuitive sense of priority.
 
RTEMS_INLINE_ROUTINE bool _Scheduler_Is_priority_higher_than (const Scheduler_Control *scheduler, Priority_Control p1, Priority_Control p2)
 Returns true if p1 encodes a higher priority than p2 in the intuitive sense of priority.
 
RTEMS_INLINE_ROUTINE uint32_t _Scheduler_Get_processor_count (const Scheduler_Control *scheduler)
 
RTEMS_INLINE_ROUTINE Objects_Id _Scheduler_Build_id (uint32_t scheduler_index)
 
RTEMS_INLINE_ROUTINE uint32_t _Scheduler_Get_index_by_id (Objects_Id id)
 
RTEMS_INLINE_ROUTINE bool _Scheduler_Get_by_id (Objects_Id id, const Scheduler_Control **scheduler_p)
 
RTEMS_INLINE_ROUTINE bool _Scheduler_Is_id_valid (Objects_Id id)
 
RTEMS_INLINE_ROUTINE uint32_t _Scheduler_Get_index (const Scheduler_Control *scheduler)
 
RTEMS_INLINE_ROUTINE Scheduler_Node_Scheduler_Thread_get_node (const Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Node_do_initialize (Scheduler_Node *node, Thread_Control *the_thread)
 
RTEMS_INLINE_ROUTINE void _Scheduler_Acquire (Thread_Control *the_thread, ISR_lock_Context *lock_context)
 Acquires the scheduler instance of the thread. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Release (Thread_Control *the_thread, ISR_lock_Context *lock_context)
 Releases the scheduler instance of the thread. More...
 

Detailed Description

Inlined Routines Associated with the Manipulation of the Scheduler.

This inline file contains all of the inlined routines associated with the manipulation of the scheduler.