RTEMS  5.0.0
schedulersimple.h
Go to the documentation of this file.
1 
10 /*
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_SCHEDULERSIMPLE_H
19 #define _RTEMS_SCORE_SCHEDULERSIMPLE_H
20 
21 #include <rtems/score/scheduler.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
35 #define SCHEDULER_SIMPLE_MAXIMUM_PRIORITY 255
36 
40 #define SCHEDULER_SIMPLE_ENTRY_POINTS \
41  { \
42  _Scheduler_simple_Initialize, /* initialize entry point */ \
43  _Scheduler_simple_Schedule, /* schedule entry point */ \
44  _Scheduler_simple_Yield, /* yield entry point */ \
45  _Scheduler_simple_Block, /* block entry point */ \
46  _Scheduler_simple_Unblock, /* unblock entry point */ \
47  _Scheduler_simple_Update_priority, /* update priority entry point */ \
48  _Scheduler_default_Map_priority, /* map priority entry point */ \
49  _Scheduler_default_Unmap_priority, /* unmap priority entry point */ \
50  SCHEDULER_OPERATION_DEFAULT_ASK_FOR_HELP \
51  _Scheduler_default_Node_initialize, /* node initialize entry point */ \
52  _Scheduler_default_Node_destroy, /* node destroy entry point */ \
53  _Scheduler_default_Release_job, /* new period of task */ \
54  _Scheduler_default_Cancel_job, /* cancel period of task */ \
55  _Scheduler_default_Tick, /* tick entry point */ \
56  _Scheduler_default_Start_idle /* start idle entry point */ \
57  SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \
58  }
59 
63 typedef struct {
68 
74 
80 void _Scheduler_simple_Initialize( const Scheduler_Control *scheduler );
81 
91  const Scheduler_Control *scheduler,
92  Thread_Control *the_thread
93 );
94 
95 void _Scheduler_simple_Yield(
96  const Scheduler_Control *scheduler,
97  Thread_Control *the_thread,
98  Scheduler_Node *node
99 );
100 
101 void _Scheduler_simple_Block(
102  const Scheduler_Control *scheduler,
103  Thread_Control *the_thread,
104  Scheduler_Node *node
105 );
106 
107 void _Scheduler_simple_Unblock(
108  const Scheduler_Control *scheduler,
109  Thread_Control *the_thread,
110  Scheduler_Node *node
111 );
112 
113 void _Scheduler_simple_Update_priority(
114  const Scheduler_Control *scheduler,
115  Thread_Control *the_thread,
116  Scheduler_Node *node
117 );
118 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif
126 /* end of include file */
Scheduler_Context Base
Basic scheduler context.
Definition: schedulersimple.h:67
Scheduler context.
Definition: scheduler.h:249
Chain_Control Ready
One ready queue for all ready threads.
Definition: schedulersimple.h:72
Definition: chain.h:83
Thread Manipulation with the Priority-Based Scheduler.
Simple scheduler context.
Definition: schedulersimple.h:63
Definition: thread.h:728
void _Scheduler_simple_Initialize(const Scheduler_Control *scheduler)
Initialize simple scheduler.
Definition: schedulersimple.c:25
Scheduler control.
Definition: scheduler.h:266
Scheduler node for per-thread data.
Definition: schedulernode.h:65
void _Scheduler_simple_Schedule(const Scheduler_Control *scheduler, Thread_Control *the_thread)
Definition: schedulersimpleschedule.c:23
Constants and Structures Associated with the Scheduler.