RTEMS
Public Attributes | List of all members
Scheduler_Operations Struct Reference

The scheduler operations. More...

#include <scheduler.h>

Public Attributes

void(* initialize )(const Scheduler_Control *)
 
void(* schedule )(const Scheduler_Control *, Thread_Control *)
 
void(* yield )(const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
 
void(* block )(const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
 
void(* unblock )(const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
 
void(* update_priority )(const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
 
Priority_Control(* map_priority )(const Scheduler_Control *, Priority_Control)
 
Priority_Control(* unmap_priority )(const Scheduler_Control *, Priority_Control)
 
bool(* ask_for_help )(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Ask for help operation. More...
 
void(* reconsider_help_request )(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Reconsider help operation. More...
 
void(* withdraw_node )(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
 Withdraw node operation. More...
 
void(* pin )(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, struct Per_CPU_Control *cpu)
 Pin thread operation. More...
 
void(* unpin )(const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, struct Per_CPU_Control *cpu)
 Unpin thread operation. More...
 
void(* add_processor )(const Scheduler_Control *scheduler, Thread_Control *idle)
 Add processor operation. More...
 
Thread_Control *(* remove_processor )(const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
 Remove processor operation. More...
 
void(* node_initialize )(const Scheduler_Control *, Scheduler_Node *, Thread_Control *, Priority_Control)
 
void(* node_destroy )(const Scheduler_Control *, Scheduler_Node *)
 
void(* release_job )(const Scheduler_Control *, Thread_Control *, Priority_Node *, uint64_t, Thread_queue_Context *)
 
void(* cancel_job )(const Scheduler_Control *, Thread_Control *, Priority_Node *, Thread_queue_Context *)
 
void(* tick )(const Scheduler_Control *, Thread_Control *)
 
void(* start_idle )(const Scheduler_Control *, Thread_Control *, struct Per_CPU_Control *)
 
bool(* set_affinity )(const Scheduler_Control *, Thread_Control *, Scheduler_Node *, const Processor_mask *)
 

Detailed Description

The scheduler operations.

Definition at line 43 of file scheduler.h.

Member Data Documentation

◆ add_processor

void( * Scheduler_Operations::add_processor) (const Scheduler_Control *scheduler, Thread_Control *idle)

Add processor operation.

Parameters
[in]schedulerThe scheduler instance to add the processor.
[in]idleThe idle thread of the processor to add.

Definition at line 173 of file scheduler.h.

◆ ask_for_help

bool( * Scheduler_Operations::ask_for_help) (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)

Ask for help operation.

Parameters
[in]schedulerThe scheduler instance to ask for help.
[in]the_threadThe thread needing help.
[in]nodeThe scheduler node.
Return values
trueAsk for help was successful.
falseOtherwise.

Definition at line 101 of file scheduler.h.

◆ block

void( * Scheduler_Operations::block) (const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
See also
_Scheduler_Block()

Definition at line 58 of file scheduler.h.

◆ cancel_job

void( * Scheduler_Operations::cancel_job) (const Scheduler_Control *, Thread_Control *, Priority_Node *, Thread_queue_Context *)
See also
_Scheduler_Cancel_job()

Definition at line 213 of file scheduler.h.

◆ initialize

void( * Scheduler_Operations::initialize) (const Scheduler_Control *)
See also
_Scheduler_Handler_initialization()

Definition at line 45 of file scheduler.h.

◆ map_priority

Priority_Control( * Scheduler_Operations::map_priority) (const Scheduler_Control *, Priority_Control)
See also
_Scheduler_Map_priority()

Definition at line 79 of file scheduler.h.

◆ node_destroy

void( * Scheduler_Operations::node_destroy) (const Scheduler_Control *, Scheduler_Node *)
See also
_Scheduler_Node_destroy()

Definition at line 201 of file scheduler.h.

◆ node_initialize

void( * Scheduler_Operations::node_initialize) (const Scheduler_Control *, Scheduler_Node *, Thread_Control *, Priority_Control)
See also
_Scheduler_Node_initialize()

Definition at line 193 of file scheduler.h.

◆ pin

void( * Scheduler_Operations::pin) (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, struct Per_CPU_Control *cpu)

Pin thread operation.

Parameters
[in]schedulerThe scheduler instance of the specified processor.
[in]the_threadThe thread to pin.
[in]nodeThe scheduler node of the thread.
[in]cpuThe processor to pin the thread.

Definition at line 145 of file scheduler.h.

◆ reconsider_help_request

void( * Scheduler_Operations::reconsider_help_request) (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)

Reconsider help operation.

Parameters
[in]schedulerThe scheduler instance to reconsider the help request.
[in]the_threadThe thread reconsidering a help request.
[in]nodeThe scheduler node.

Definition at line 115 of file scheduler.h.

◆ release_job

void( * Scheduler_Operations::release_job) (const Scheduler_Control *, Thread_Control *, Priority_Node *, uint64_t, Thread_queue_Context *)
See also
_Scheduler_Release_job()

Definition at line 204 of file scheduler.h.

◆ remove_processor

Thread_Control*( * Scheduler_Operations::remove_processor) (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)

Remove processor operation.

Parameters
[in]schedulerThe scheduler instance to remove the processor.
[in]cpuThe processor to remove.
Returns
The idle thread of the removed processor.

Definition at line 186 of file scheduler.h.

◆ schedule

void( * Scheduler_Operations::schedule) (const Scheduler_Control *, Thread_Control *)
See also
_Scheduler_Schedule()

Definition at line 48 of file scheduler.h.

◆ set_affinity

bool( * Scheduler_Operations::set_affinity) (const Scheduler_Control *, Thread_Control *, Scheduler_Node *, const Processor_mask *)
See also
_Scheduler_Set_affinity()

Definition at line 232 of file scheduler.h.

◆ start_idle

void( * Scheduler_Operations::start_idle) (const Scheduler_Control *, Thread_Control *, struct Per_CPU_Control *)
See also
_Scheduler_Start_idle()

Definition at line 224 of file scheduler.h.

◆ tick

void( * Scheduler_Operations::tick) (const Scheduler_Control *, Thread_Control *)
See also
_Scheduler_Tick()

Definition at line 221 of file scheduler.h.

◆ unblock

void( * Scheduler_Operations::unblock) (const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
See also
_Scheduler_Unblock()

Definition at line 65 of file scheduler.h.

◆ unmap_priority

Priority_Control( * Scheduler_Operations::unmap_priority) (const Scheduler_Control *, Priority_Control)
See also
_Scheduler_Unmap_priority()

Definition at line 85 of file scheduler.h.

◆ unpin

void( * Scheduler_Operations::unpin) (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, struct Per_CPU_Control *cpu)

Unpin thread operation.

Parameters
[in]schedulerThe scheduler instance of the specified processor.
[in]the_threadThe thread to unpin.
[in]nodeThe scheduler node of the thread.
[in]cpuThe processor to unpin the thread.

Definition at line 160 of file scheduler.h.

◆ update_priority

void( * Scheduler_Operations::update_priority) (const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
See also
_Scheduler_Update_priority()

Definition at line 72 of file scheduler.h.

◆ withdraw_node

void( * Scheduler_Operations::withdraw_node) (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)

Withdraw node operation.

Parameters
[in]schedulerThe scheduler instance to withdraw the node.
[in]the_threadThe thread using the node.
[in]nodeThe scheduler node to withdraw.
[in]next_stateThe next thread scheduler state in case the node is scheduled.

Definition at line 130 of file scheduler.h.

◆ yield

void( * Scheduler_Operations::yield) (const Scheduler_Control *, Thread_Control *, Scheduler_Node *)
See also
_Scheduler_Yield()

Definition at line 51 of file scheduler.h.


The documentation for this struct was generated from the following file: