Scheduler Strong APA  Release
Classes | Macros | Functions
schedulerstrongapa.h File Reference

Strong APA Scheduler API. More...

#include <rtems/score/scheduler.h>
#include <rtems/score/schedulersmp.h>
#include <rtems/score/percpu.h>
Include dependency graph for schedulerstrongapa.h:

Go to the source code of this file.

Classes

struct  Scheduler_strong_APA_Node
 Scheduler node specialization for Strong APA schedulers. More...
 
struct  Scheduler_strong_APA_CPU
 CPU related variables and a CPU_Control to implement BFS. More...
 
struct  Scheduler_strong_APA_Context
 Scheduler context and node definition for Strong APA scheduler. More...
 

Macros

#define STRONG_SCHEDULER_NODE_OF_CHAIN(node)   RTEMS_CONTAINER_OF( node, Scheduler_strong_APA_Node, Ready_node )
 
#define SCHEDULER_STRONG_APA_MAXIMUM_PRIORITY   255
 
#define SCHEDULER_STRONG_APA_ENTRY_POINTS
 Entry points for the Strong APA Scheduler. More...
 

Functions

void _Scheduler_strong_APA_Initialize (const Scheduler_Control *scheduler)
 Initializes the scheduler. More...
 
void _Scheduler_strong_APA_Node_initialize (const Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
 Initializes the node with the given priority. More...
 
void _Scheduler_strong_APA_Block (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Blocks the thread. More...
 
void _Scheduler_strong_APA_Unblock (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Unblocks the thread. More...
 
void _Scheduler_strong_APA_Update_priority (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Updates the priority of the node. More...
 
bool _Scheduler_strong_APA_Ask_for_help (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Asks for help. More...
 
void _Scheduler_strong_APA_Reconsider_help_request (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Reconsiders help request. More...
 
void _Scheduler_strong_APA_Withdraw_node (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node, Thread_Scheduler_state next_state)
 Withdraws the node. More...
 
void _Scheduler_strong_APA_Add_processor (const Scheduler_Control *scheduler, Thread_Control *idle)
 Adds the idle thread to a processor. More...
 
Thread_Control * _Scheduler_strong_APA_Remove_processor (const Scheduler_Control *scheduler, struct Per_CPU_Control *cpu)
 Removes an idle thread from the given cpu. More...
 
void _Scheduler_strong_APA_Yield (const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node)
 Performs a yield operation. More...
 
void _Scheduler_strong_APA_Start_idle (const Scheduler_Control *scheduler, Thread_Control *idle, struct Per_CPU_Control *cpu)
 Starts an idle thread. More...
 
bool _Scheduler_strong_APA_Set_affinity (const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node_base, const Processor_mask *affinity)
 Sets the affinity . More...
 

Detailed Description

Strong APA Scheduler API.

Definition in file schedulerstrongapa.h.

Macro Definition Documentation

◆ STRONG_SCHEDULER_NODE_OF_CHAIN

#define STRONG_SCHEDULER_NODE_OF_CHAIN (   node)    RTEMS_CONTAINER_OF( node, Scheduler_strong_APA_Node, Ready_node )

Definition at line 47 of file schedulerstrongapa.h.