source: rtems/cpukit/score/include/rtems/score/scheduleredfimpl.h @ 2369b10

4.115
Last change on this file since 2369b10 was 2369b10, checked in by Sebastian Huber <sebastian.huber@…>, on 05/14/14 at 14:04:10

score: Add and use _Scheduler_Get_context()

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup ScoreSchedulerEDF
5 *
6 * @brief EDF Scheduler Implementation
7 */
8
9/*
10 *  Copryight (c) 2011 Petr Benes.
11 *  Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef _RTEMS_SCORE_SCHEDULEREDFIMPL_H
19#define _RTEMS_SCORE_SCHEDULEREDFIMPL_H
20
21#include <rtems/score/scheduleredf.h>
22#include <rtems/score/schedulerimpl.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/**
29 * @addtogroup ScoreSchedulerEDF EDF
30 *
31 * @{
32 */
33
34RTEMS_INLINE_ROUTINE Scheduler_EDF_Context *
35  _Scheduler_EDF_Get_context( const Scheduler_Control *scheduler )
36{
37  return (Scheduler_EDF_Context *) _Scheduler_Get_context( scheduler );
38}
39
40RTEMS_INLINE_ROUTINE Scheduler_EDF_Node *_Scheduler_EDF_Node_get(
41  Thread_Control *the_thread
42)
43{
44  return (Scheduler_EDF_Node *) _Scheduler_Node_get( the_thread );
45}
46
47RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Schedule_body(
48  const Scheduler_Control *scheduler,
49  Thread_Control          *the_thread,
50  bool                     force_dispatch
51)
52{
53  Scheduler_EDF_Context *context =
54    _Scheduler_EDF_Get_context( scheduler );
55  RBTree_Node *first = _RBTree_First( &context->Ready, RBT_LEFT );
56  Scheduler_EDF_Node *node =
57    _RBTree_Container_of(first, Scheduler_EDF_Node, Node);
58  Thread_Control *heir = node->thread;
59
60  ( void ) the_thread;
61
62  _Scheduler_Update_heir( heir, force_dispatch );
63}
64
65/**@}*/
66
67#ifdef __cplusplus
68}
69#endif
70
71#endif
72/* end of include file */
Note: See TracBrowser for help on using the repository browser.