RTEMS CPU Kit with SuperCore
4.11.2
|
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>
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... | |
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.