38#ifndef _RTEMS_SCORE_SCHEDULEREDFIMPL_H
39#define _RTEMS_SCORE_SCHEDULEREDFIMPL_H
61#define SCHEDULER_EDF_PRIO_MSB 0x8000000000000000
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(
214 context = _Scheduler_EDF_Get_context( scheduler );
215 the_node = _Scheduler_EDF_Node_downcast( node );
217 _Scheduler_EDF_Extract( context, the_node );
233 context = _Scheduler_EDF_Get_context( scheduler );
237 return node->Base.owner;
#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:85
Scheduler node specialization for EDF schedulers.
Definition: scheduleredf.h:100
Priority_Control priority
The thread priority currently used for this scheduler instance.
Definition: scheduleredf.h:114
Scheduler node for per-thread data.
Definition: schedulernode.h:94
Scheduler control.
Definition: scheduler.h:337