RTEMS  5.1
Macros | Functions
schedulernodeimpl.h File Reference

Scheduler Node Implementation. More...

#include <rtems/score/schedulernode.h>
#include <rtems/score/priorityimpl.h>

Go to the source code of this file.

Macros

#define SCHEDULER_NODE_OF_WAIT_PRIORITY_NODE(node)   RTEMS_CONTAINER_OF( node, Scheduler_Node, Wait.Priority.Node.Node.Chain )
 
#define SCHEDULER_NODE_OF_WAIT_PRIORITY(node)   RTEMS_CONTAINER_OF( node, Scheduler_Node, Wait.Priority )
 
#define SCHEDULER_PRIORITY_APPEND_FLAG   1
 Priority append indicator for the priority control used for the scheduler node priority.
 
#define SCHEDULER_PRIORITY_MAP(priority)   ( ( priority ) << 1 )
 Maps a priority value to support the append indicator.
 
#define SCHEDULER_PRIORITY_UNMAP(priority)   ( ( priority ) >> 1 )
 Returns the plain priority value.
 
#define SCHEDULER_PRIORITY_PURIFY(priority)   ( ( priority ) & ~( (Priority_Control) SCHEDULER_PRIORITY_APPEND_FLAG ) )
 Clears the priority append indicator bit.
 
#define SCHEDULER_PRIORITY_APPEND(priority)   ( ( priority ) | SCHEDULER_PRIORITY_APPEND_FLAG )
 Returns the priority control with the append indicator bit set.
 
#define SCHEDULER_PRIORITY_IS_APPEND(priority)   ( ( ( priority ) & SCHEDULER_PRIORITY_APPEND_FLAG ) != 0 )
 Returns true, if the item should be appended to its priority group, otherwise returns false and the item should be prepended to its priority group.
 

Functions

RTEMS_INLINE_ROUTINE void _Scheduler_Node_do_initialize (const struct _Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority)
 Initializes a node. More...
 
RTEMS_INLINE_ROUTINE const Scheduler_Control_Scheduler_Node_get_scheduler (const Scheduler_Node *node)
 Gets the scheduler of the node. More...
 
RTEMS_INLINE_ROUTINE Thread_Control_Scheduler_Node_get_owner (const Scheduler_Node *node)
 Gets the owner of the node. More...
 
RTEMS_INLINE_ROUTINE Priority_Control _Scheduler_Node_get_priority (Scheduler_Node *node)
 Gets the priority of the node. More...
 
RTEMS_INLINE_ROUTINE void _Scheduler_Node_set_priority (Scheduler_Node *node, Priority_Control new_priority, bool prepend_it)
 Sets the priority of the node. More...
 

Detailed Description

Scheduler Node Implementation.