23 #ifndef _RTEMS_SCORE_SCHEDULERPRIORITYSMPIMPL_H 24 #define _RTEMS_SCORE_SCHEDULERPRIORITYSMPIMPL_H 60 static inline void _Scheduler_priority_SMP_Move_from_scheduled_to_ready(
66 _Scheduler_priority_SMP_Get_self( context );
68 _Scheduler_priority_SMP_Node_downcast( scheduled_to_ready );
78 static inline void _Scheduler_priority_SMP_Move_from_ready_to_scheduled(
84 _Scheduler_priority_SMP_Get_self( context );
86 _Scheduler_priority_SMP_Node_downcast( ready_to_scheduled );
94 &self->Base.Scheduled,
96 _Scheduler_SMP_Insert_priority_fifo_order
100 static inline void _Scheduler_priority_SMP_Insert_ready_lifo(
106 _Scheduler_priority_SMP_Get_self( context );
108 _Scheduler_priority_SMP_Node_downcast( thread );
117 static inline void _Scheduler_priority_SMP_Insert_ready_fifo(
123 _Scheduler_priority_SMP_Get_self( context );
125 _Scheduler_priority_SMP_Node_downcast( thread );
134 static inline void _Scheduler_priority_SMP_Extract_from_ready(
140 _Scheduler_priority_SMP_Get_self( context );
142 _Scheduler_priority_SMP_Node_downcast( thread );
151 static inline void _Scheduler_priority_SMP_Do_update(
158 _Scheduler_priority_SMP_Get_self( context );
160 _Scheduler_priority_SMP_Node_downcast( node_to_update );
162 _Scheduler_SMP_Node_update_priority( &node->
Base, new_priority );
Inlined Routines Associated with the Manipulation of the Priority-Based Scheduling Structures...
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue_first(Chain_Node *node, Scheduler_priority_Ready_queue *ready_queue, Priority_bit_map_Control *bit_map)
Enqueues a node on the specified ready queue as first.
Definition: schedulerpriorityimpl.h:97
Scheduler context.
Definition: scheduler.h:180
RTEMS_INLINE_ROUTINE void _Chain_Extract_unprotected(Chain_Node *the_node)
Extract this node (unprotected).
Definition: chainimpl.h:639
Scheduler_SMP_Node Base
SMP scheduler node.
Definition: schedulerprioritysmp.h:68
Inlined Routines Associated with the Manipulation of the Priority-Based Scheduling Structures...
Deterministic Priority SMP Scheduler API.
uint32_t Priority_Control
The following type defines the control block used to manage thread priorities.
Definition: priority.h:56
Scheduler context specialization for Deterministic Priority SMP schedulers.
Definition: schedulerprioritysmp.h:54
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_extract(Chain_Node *node, Scheduler_priority_Ready_queue *ready_queue, Priority_bit_map_Control *bit_map)
Extracts a node from the specified ready queue.
Definition: schedulerpriorityimpl.h:116
Scheduler_priority_Ready_queue Ready_queue
The associated ready queue of this node.
Definition: schedulerprioritysmp.h:73
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_update(Scheduler_priority_Ready_queue *ready_queue, Priority_Control new_priority, Priority_bit_map_Control *bit_map, Chain_Control *ready_queues)
Updates the specified ready queue data according to the new priority value.
Definition: schedulerpriorityimpl.h:205
SMP Scheduler Implementation.
Scheduler_Node Base
Basic scheduler node.
Definition: schedulersmp.h:102
Scheduler node for per-thread data.
Definition: scheduler.h:281
Scheduler node specialization for Deterministic Priority SMP schedulers.
Definition: schedulerprioritysmp.h:64
RTEMS_INLINE_ROUTINE void _Chain_Insert_ordered_unprotected(Chain_Control *chain, Chain_Node *to_insert, Chain_Node_order order)
Inserts a node into the chain according to the order relation.
Definition: chainimpl.h:934
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue(Chain_Node *node, Scheduler_priority_Ready_queue *ready_queue, Priority_bit_map_Control *bit_map)
Enqueues a node on the specified ready queue.
Definition: schedulerpriorityimpl.h:76