RTEMS: cpukit/include/rtems/score/schedulerimpl.h File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Functions
schedulerimpl.h File Reference
Internal » SuperCore » Scheduler Handler

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

`#include <rtems/score/scheduler.h>`
`#include <rtems/score/assert.h>`
`#include <rtems/score/priorityimpl.h>`
`#include <rtems/score/smpimpl.h>`
`#include <rtems/score/status.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.
RTEMS_INLINE_ROUTINE Scheduler_Context * | _Scheduler_Get_context (const Scheduler_Control *scheduler)
| Gets the context of the scheduler.
RTEMS_INLINE_ROUTINE const Scheduler_Control * | _Scheduler_Get_by_CPU (const Per_CPU_Control *cpu)
| Gets the scheduler for the cpu.
RTEMS_INLINE_ROUTINE void | _Scheduler_Acquire_critical (const Scheduler_Control *scheduler, ISR_lock_Context *lock_context)
| Acquires the scheduler instance inside a critical section (interrupts disabled).
RTEMS_INLINE_ROUTINE void | _Scheduler_Release_critical (const Scheduler_Control *scheduler, ISR_lock_Context *lock_context)
| Releases the scheduler instance inside a critical section (interrupts disabled).
RTEMS_INLINE_ROUTINE void | _Scheduler_Schedule (Thread_Control *the_thread)
| General scheduling decision.
RTEMS_INLINE_ROUTINE void | _Scheduler_Yield (Thread_Control *the_thread)
| Scheduler yield with a particular thread.
RTEMS_INLINE_ROUTINE void | _Scheduler_Block (Thread_Control *the_thread)
| Blocks a thread with respect to the scheduler.
RTEMS_INLINE_ROUTINE void | _Scheduler_Unblock (Thread_Control *the_thread)
| Unblocks a thread with respect to the scheduler.
RTEMS_INLINE_ROUTINE void | _Scheduler_Update_priority (Thread_Control *the_thread)
| Propagates a priority change of a thread to the scheduler.
RTEMS_INLINE_ROUTINE Priority_Control | _Scheduler_Map_priority (const Scheduler_Control *scheduler, Priority_Control priority)
| Maps a thread priority from the user domain to the scheduler domain.
RTEMS_INLINE_ROUTINE Priority_Control | _Scheduler_Unmap_priority (const Scheduler_Control *scheduler, Priority_Control priority)
| Unmaps a thread priority from the scheduler domain to the user domain.
RTEMS_INLINE_ROUTINE void | _Scheduler_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
| Initializes a scheduler node.
RTEMS_INLINE_ROUTINE void | _Scheduler_Node_destroy (const Scheduler_Control *scheduler, Scheduler_Node *node)
| Destroys a scheduler node.
RTEMS_INLINE_ROUTINE void | _Scheduler_Release_job (Thread_Control *the_thread, Priority_Node *priority_node, uint64_t deadline, Thread_queue_Context *queue_context)
| Releases a job of a thread with respect to the scheduler.
RTEMS_INLINE_ROUTINE void | _Scheduler_Cancel_job (Thread_Control *the_thread, Priority_Node *priority_node, Thread_queue_Context *queue_context)
| Cancels a job of a thread with respect to the scheduler.
RTEMS_INLINE_ROUTINE void | _Scheduler_Tick (const Per_CPU_Control *cpu)
| Scheduler method invoked at each clock tick.
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.
RTEMS_INLINE_ROUTINE bool | _Scheduler_Has_processor_ownership (const Scheduler_Control *scheduler, uint32_t cpu_index)
| Checks if the scheduler of the cpu with the given index is equal to the given scheduler.
RTEMS_INLINE_ROUTINE const Processor_mask * | _Scheduler_Get_processors (const Scheduler_Control *scheduler)
| Gets the processors of the scheduler.
bool | _Scheduler_Get_affinity (Thread_Control *the_thread, size_t cpusetsize, cpu_set_t *cpuset)
| Copies the thread's scheduler's affinity to the given cpuset.
RTEMS_INLINE_ROUTINE bool | _Scheduler_default_Set_affinity_body (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, const Processor_mask *affinity)
| Checks if the affinity is a subset of the online processors.
bool | _Scheduler_Set_affinity (Thread_Control *the_thread, size_t cpusetsize, const cpu_set_t *cpuset)
| Sets the thread's scheduler's affinity.
RTEMS_INLINE_ROUTINE void | _Scheduler_Generic_block (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, void(*extract)(const Scheduler_Control *, Thread_Control *, Scheduler_Node *), void(*schedule)(const Scheduler_Control *, Thread_Control *, bool))
| Blocks the thread.
RTEMS_INLINE_ROUTINE uint32_t | _Scheduler_Get_processor_count (const Scheduler_Control *scheduler)
| Gets the number of processors of the scheduler.
RTEMS_INLINE_ROUTINE Objects_Id | _Scheduler_Build_id (uint32_t scheduler_index)
| Builds an object build id.
RTEMS_INLINE_ROUTINE uint32_t | _Scheduler_Get_index_by_id (Objects_Id id)
| Gets the scheduler index from the given object build id.
RTEMS_INLINE_ROUTINE const Scheduler_Control * | _Scheduler_Get_by_id (Objects_Id id)
| Gets the scheduler from the given object build id.
RTEMS_INLINE_ROUTINE uint32_t | _Scheduler_Get_index (const Scheduler_Control *scheduler)
| Gets the index of the scheduler.
RTEMS_INLINE_ROUTINE void | _Scheduler_Update_heir (Thread_Control *new_heir, bool force_dispatch)
| Updates the heir.
RTEMS_INLINE_ROUTINE Status_Control | _Scheduler_Set (const Scheduler_Control *new_scheduler, Thread_Control *the_thread, Priority_Control priority)
| Sets a new scheduler.

## 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.