RTEMS CPU Kit with SuperCore
4.11.2
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.2
ws-rtems
rtems-4.11.2
cpukit
score
include
rtems
score
schedulersimplesmp.h
Go to the documentation of this file.
1
9
/*
10
* Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
11
*
12
* Copyright (c) 2013 embedded brains GmbH.
13
*
14
* The license and distribution terms for this file may be
15
* found in the file LICENSE in this distribution or at
16
* http://www.rtems.org/license/LICENSE.
17
*/
18
19
#ifndef _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
20
#define _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
21
22
#ifdef __cplusplus
23
extern
"C"
{
24
#endif
25
26
#include <
rtems/score/scheduler.h
>
27
#include <
rtems/score/schedulerpriority.h
>
28
#include <
rtems/score/schedulersmp.h
>
29
52
typedef
struct
{
53
Scheduler_SMP_Context
Base;
54
Chain_Control
Ready;
55
}
Scheduler_simple_SMP_Context
;
56
60
#define SCHEDULER_SIMPLE_SMP_ENTRY_POINTS \
61
{ \
62
_Scheduler_simple_SMP_Initialize, \
63
_Scheduler_default_Schedule, \
64
_Scheduler_simple_SMP_Yield, \
65
_Scheduler_simple_SMP_Block, \
66
_Scheduler_simple_SMP_Unblock, \
67
_Scheduler_simple_SMP_Change_priority, \
68
_Scheduler_simple_SMP_Ask_for_help, \
69
_Scheduler_simple_SMP_Node_initialize, \
70
_Scheduler_default_Node_destroy, \
71
_Scheduler_simple_SMP_Update_priority, \
72
_Scheduler_priority_Priority_compare, \
73
_Scheduler_default_Release_job, \
74
_Scheduler_default_Tick, \
75
_Scheduler_SMP_Start_idle \
76
SCHEDULER_OPERATION_DEFAULT_GET_SET_AFFINITY \
77
}
78
79
void
_Scheduler_simple_SMP_Initialize(
const
Scheduler_Control
*scheduler );
80
81
void
_Scheduler_simple_SMP_Node_initialize(
82
const
Scheduler_Control
*scheduler,
83
Thread_Control
*the_thread
84
);
85
86
void
_Scheduler_simple_SMP_Block(
87
const
Scheduler_Control
*scheduler,
88
Thread_Control
*thread
89
);
90
91
Thread_Control
*_Scheduler_simple_SMP_Unblock(
92
const
Scheduler_Control
*scheduler,
93
Thread_Control
*thread
94
);
95
96
Thread_Control
*_Scheduler_simple_SMP_Change_priority(
97
const
Scheduler_Control
*scheduler,
98
Thread_Control
*the_thread,
99
Priority_Control
new_priority,
100
bool
prepend_it
101
);
102
103
Thread_Control
*_Scheduler_simple_SMP_Ask_for_help(
104
const
Scheduler_Control
*scheduler,
105
Thread_Control
*offers_help,
106
Thread_Control
*needs_help
107
);
108
109
void
_Scheduler_simple_SMP_Update_priority(
110
const
Scheduler_Control
*scheduler,
111
Thread_Control
*thread,
112
Priority_Control
new_priority
113
);
114
115
Thread_Control
*_Scheduler_simple_SMP_Yield(
116
const
Scheduler_Control
*scheduler,
117
Thread_Control
*thread
118
);
119
122
#ifdef __cplusplus
123
}
124
#endif
125
126
#endif
127
/* end of include file */
Scheduler_SMP_Context
Scheduler context specialization for SMP schedulers.
Definition:
schedulersmp.h:44
schedulersmp.h
SMP Scheduler API.
Scheduler_Control
Scheduler control.
Definition:
scheduler.h:192
Chain_Control
This is used to manage a chain.
Definition:
chain.h:83
schedulerpriority.h
Thread Manipulation with the Priority-Based Scheduler.
Priority_Control
uint32_t Priority_Control
The following type defines the control block used to manage thread priorities.
Definition:
priority.h:56
Thread_Control
This structure defines the Thread Control Block (TCB).
Definition:
thread.h:671
scheduler.h
Constants and Structures Associated with the Scheduler.
Scheduler_simple_SMP_Context
Definition:
schedulersimplesmp.h:52
Generated by
1.8.13