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

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Macros | Functions
schedulernodeimpl.h File Reference
Internal » SuperCore » Scheduler Handler

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.
RTEMS_INLINE_ROUTINE const Scheduler_Control * | _Scheduler_Node_get_scheduler (const Scheduler_Node *node)
| Gets the scheduler of the node.
RTEMS_INLINE_ROUTINE Thread_Control * | _Scheduler_Node_get_owner (const Scheduler_Node *node)
| Gets the owner of the node.
RTEMS_INLINE_ROUTINE Priority_Control | _Scheduler_Node_get_priority (Scheduler_Node *node)
| Gets the priority of the node.
RTEMS_INLINE_ROUTINE void | _Scheduler_Node_set_priority (Scheduler_Node *node, Priority_Control new_priority, bool prepend_it)
| Sets the priority of the node.

## Detailed Description

Scheduler Node Implementation.