38#ifndef _RTEMS_SCORE_SCHEDULEREDFIMPL_H
39#define _RTEMS_SCORE_SCHEDULEREDFIMPL_H
61#define SCHEDULER_EDF_PRIO_MSB 0x8000000000000000
71 _Scheduler_EDF_Get_context(
const Scheduler_Control *scheduler )
84 Thread_Control *the_thread
113static inline bool _Scheduler_EDF_Less(
126 prio_left = *the_left;
129 return prio_left < prio_right;
141static inline bool _Scheduler_EDF_Priority_less_equal(
154 prio_left = *the_left;
157 return prio_left <= prio_right;
168static inline void _Scheduler_EDF_Enqueue(
174 _RBTree_Insert_inline(
178 _Scheduler_EDF_Priority_less_equal
188static inline void _Scheduler_EDF_Extract(
203static inline void _Scheduler_EDF_Extract_body(
204 const Scheduler_Control *scheduler,
205 Thread_Control *the_thread,
212 context = _Scheduler_EDF_Get_context( scheduler );
213 the_node = _Scheduler_EDF_Node_downcast( node );
215 _Scheduler_EDF_Extract(
context, the_node );
223static inline Thread_Control *_Scheduler_EDF_Get_highest_ready(
224 const Scheduler_Control *scheduler
231 context = _Scheduler_EDF_Get_context( scheduler );
#define RTEMS_CONTAINER_OF(_m, _type, _member_name)
Gets the container of a member.
Definition basedefs.h:306
uint64_t Priority_Control
The thread priority control.
Definition priority.h:91
void _RBTree_Extract(RBTree_Control *the_rbtree, RBTree_Node *the_node)
Extracts (removes) the node from the red-black tree.
Definition rbtreeextract.c:63
RBTree_Node * _RBTree_Minimum(const RBTree_Control *the_rbtree)
Returns the minimum node of the red-black tree.
Definition rbtreemin.c:43
This header file provides interfaces of the EDF Scheduler which are used by the implementation and th...
This header file provides interfaces of the supporting the implementation of uniprocessor schedulers.
Red-black tree node.
Definition rbtree.h:73
Definition scheduleredf.h:92
Scheduler node specialization for EDF schedulers.
Definition scheduleredf.h:107
Priority_Control priority
The thread priority currently used for this scheduler instance.
Definition scheduleredf.h:121
RBTree_Node Node
Definition scheduleredf.h:116
Scheduler_Node Base
Basic scheduler node.
Definition scheduleredf.h:111
Scheduler node for per-thread data.
Definition schedulernode.h:94
struct _Thread_Control * owner
The thread owning this node.
Definition schedulernode.h:138
unsigned context
Definition tlb.h:1