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(
212 context = _Scheduler_EDF_Get_context( scheduler );
213 the_node = _Scheduler_EDF_Node_downcast( node );
215 _Scheduler_EDF_Extract(
context, the_node );
231 context = _Scheduler_EDF_Get_context( scheduler );
235 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
rtems_termios_device_context * context
Definition: console-config.c:62
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
Scheduler node for per-thread data.
Definition: schedulernode.h:94
Scheduler control.
Definition: scheduler.h:335