summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/scheduleredfimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/score/scheduleredfimpl.h')
-rw-r--r--cpukit/score/include/rtems/score/scheduleredfimpl.h164
1 files changed, 0 insertions, 164 deletions
diff --git a/cpukit/score/include/rtems/score/scheduleredfimpl.h b/cpukit/score/include/rtems/score/scheduleredfimpl.h
deleted file mode 100644
index f6bd7d8384..0000000000
--- a/cpukit/score/include/rtems/score/scheduleredfimpl.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * @file
- *
- * @ingroup ScoreSchedulerEDF
- *
- * @brief EDF Scheduler Implementation
- */
-
-/*
- * Copryight (c) 2011 Petr Benes.
- * Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_SCORE_SCHEDULEREDFIMPL_H
-#define _RTEMS_SCORE_SCHEDULEREDFIMPL_H
-
-#include <rtems/score/scheduleredf.h>
-#include <rtems/score/schedulerimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup ScoreSchedulerEDF
- *
- * @{
- */
-
-/**
- * This is just a most significant bit of Priority_Control type. It
- * distinguishes threads which are deadline driven (priority
- * represented by a lower number than @a SCHEDULER_EDF_PRIO_MSB) from those
- * ones who do not have any deadlines and thus are considered background
- * tasks.
- */
-#define SCHEDULER_EDF_PRIO_MSB 0x8000000000000000
-
-RTEMS_INLINE_ROUTINE Scheduler_EDF_Context *
- _Scheduler_EDF_Get_context( const Scheduler_Control *scheduler )
-{
- return (Scheduler_EDF_Context *) _Scheduler_Get_context( scheduler );
-}
-
-RTEMS_INLINE_ROUTINE Scheduler_EDF_Node *_Scheduler_EDF_Thread_get_node(
- Thread_Control *the_thread
-)
-{
- return (Scheduler_EDF_Node *) _Thread_Scheduler_get_home_node( the_thread );
-}
-
-RTEMS_INLINE_ROUTINE Scheduler_EDF_Node * _Scheduler_EDF_Node_downcast(
- Scheduler_Node *node
-)
-{
- return (Scheduler_EDF_Node *) node;
-}
-
-RTEMS_INLINE_ROUTINE bool _Scheduler_EDF_Less(
- const void *left,
- const RBTree_Node *right
-)
-{
- const Priority_Control *the_left;
- const Scheduler_EDF_Node *the_right;
- Priority_Control prio_left;
- Priority_Control prio_right;
-
- the_left = left;
- the_right = RTEMS_CONTAINER_OF( right, Scheduler_EDF_Node, Node );
-
- prio_left = *the_left;
- prio_right = the_right->priority;
-
- return prio_left < prio_right;
-}
-
-RTEMS_INLINE_ROUTINE bool _Scheduler_EDF_Priority_less_equal(
- const void *left,
- const RBTree_Node *right
-)
-{
- const Priority_Control *the_left;
- const Scheduler_EDF_Node *the_right;
- Priority_Control prio_left;
- Priority_Control prio_right;
-
- the_left = left;
- the_right = RTEMS_CONTAINER_OF( right, Scheduler_EDF_Node, Node );
-
- prio_left = *the_left;
- prio_right = the_right->priority;
-
- return prio_left <= prio_right;
-}
-
-RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Enqueue(
- Scheduler_EDF_Context *context,
- Scheduler_EDF_Node *node,
- Priority_Control insert_priority
-)
-{
- _RBTree_Insert_inline(
- &context->Ready,
- &node->Node,
- &insert_priority,
- _Scheduler_EDF_Priority_less_equal
- );
-}
-
-RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Extract(
- Scheduler_EDF_Context *context,
- Scheduler_EDF_Node *node
-)
-{
- _RBTree_Extract( &context->Ready, &node->Node );
-}
-
-RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Extract_body(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- Scheduler_Node *node
-)
-{
- Scheduler_EDF_Context *context;
- Scheduler_EDF_Node *the_node;
-
- context = _Scheduler_EDF_Get_context( scheduler );
- the_node = _Scheduler_EDF_Node_downcast( node );
-
- _Scheduler_EDF_Extract( context, the_node );
-}
-
-RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Schedule_body(
- const Scheduler_Control *scheduler,
- Thread_Control *the_thread,
- bool force_dispatch
-)
-{
- Scheduler_EDF_Context *context;
- RBTree_Node *first;
- Scheduler_EDF_Node *node;
-
- (void) the_thread;
-
- context = _Scheduler_EDF_Get_context( scheduler );
- first = _RBTree_Minimum( &context->Ready );
- node = RTEMS_CONTAINER_OF( first, Scheduler_EDF_Node, Node );
-
- _Scheduler_Update_heir( node->Base.owner, force_dispatch );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */