RTEMS
|
Scheduler Node Implementation. More...
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 | |
static __inline__ void | _Scheduler_Node_do_initialize (const struct _Scheduler_Control *scheduler, Scheduler_Node *node, Thread_Control *the_thread, Priority_Control priority) |
Initializes a node. More... | |
static __inline__ const Scheduler_Control * | _Scheduler_Node_get_scheduler (const Scheduler_Node *node) |
Gets the scheduler of the node. More... | |
static __inline__ Thread_Control * | _Scheduler_Node_get_owner (const Scheduler_Node *node) |
Gets the owner of the node. More... | |
static __inline__ Priority_Control | _Scheduler_Node_get_priority (Scheduler_Node *node) |
Gets the priority of the node. More... | |
static __inline__ void | _Scheduler_Node_set_priority (Scheduler_Node *node, Priority_Control new_priority, bool prepend_it) |
Sets the priority of the node. More... | |
static __inline__ Thread_Control * | _Scheduler_Node_get_user (const Scheduler_Node *node) |
Gets the user of the node. More... | |
static __inline__ void | _Scheduler_Node_set_user (Scheduler_Node *node, Thread_Control *user) |
Sets the user of the node. More... | |
static __inline__ Thread_Control * | _Scheduler_Node_get_idle (const Scheduler_Node *node) |
Gets the idle thread of the node. More... | |
Scheduler Node Implementation.
Definition in file schedulernodeimpl.h.