RTEMS
cpukit
include
rtems
score
schedulersmp.h
Go to the documentation of this file.
1
9
/*
10
* Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved.
11
*
12
* embedded brains GmbH
13
* Dornierstr. 4
14
* 82178 Puchheim
15
* Germany
16
* <rtems@embedded-brains.de>
17
*
18
* The license and distribution terms for this file may be
19
* found in the file LICENSE in this distribution or at
20
* http://www.rtems.org/license/LICENSE.
21
*/
22
23
#ifndef _RTEMS_SCORE_SCHEDULERSMP_H
24
#define _RTEMS_SCORE_SCHEDULERSMP_H
25
26
#include <
rtems/score/chain.h
>
27
#include <
rtems/score/scheduler.h
>
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
/* __cplusplus */
32
46
typedef
struct
{
50
Scheduler_Context
Base
;
51
55
Chain_Control
Scheduled
;
56
64
Chain_Control
Idle_threads
;
65
}
Scheduler_SMP_Context
;
66
70
typedef
enum
{
76
SCHEDULER_SMP_NODE_BLOCKED
,
77
86
SCHEDULER_SMP_NODE_SCHEDULED
,
87
94
SCHEDULER_SMP_NODE_READY
95
}
Scheduler_SMP_Node_state
;
96
100
typedef
struct
{
104
Scheduler_Node
Base
;
105
109
Scheduler_SMP_Node_state
state
;
110
114
Priority_Control
priority
;
115
}
Scheduler_SMP_Node
;
116
124
void
_Scheduler_SMP_Start_idle
(
125
const
Scheduler_Control
*scheduler,
126
Thread_Control
*idle,
127
struct
Per_CPU_Control
*cpu
128
);
129
132
#ifdef __cplusplus
133
}
134
#endif
/* __cplusplus */
135
136
#endif
/* _RTEMS_SCORE_SCHEDULERSMP_H */
Scheduler_SMP_Context
Scheduler context specialization for SMP schedulers.
Definition:
schedulersmp.h:46
Scheduler_SMP_Context::Scheduled
Chain_Control Scheduled
The chain of scheduled nodes.
Definition:
schedulersmp.h:55
Priority_Control
uint64_t Priority_Control
The thread priority control.
Definition:
priority.h:70
Scheduler_Context
Scheduler context.
Definition:
scheduler.h:247
Scheduler_SMP_Node::priority
Priority_Control priority
The current priority of thread owning this node.
Definition:
schedulersmp.h:114
Chain_Control
Definition:
chain.h:86
SCHEDULER_SMP_NODE_READY
This scheduler node is ready.
Definition:
schedulersmp.h:94
SCHEDULER_SMP_NODE_SCHEDULED
The scheduler node is scheduled.
Definition:
schedulersmp.h:86
Scheduler_SMP_Node_state
Scheduler_SMP_Node_state
SMP scheduler node states.
Definition:
schedulersmp.h:70
Scheduler_SMP_Node::state
Scheduler_SMP_Node_state state
The state of this node.
Definition:
schedulersmp.h:109
_Thread_Control
Definition:
thread.h:725
SCHEDULER_SMP_NODE_BLOCKED
This scheduler node is blocked.
Definition:
schedulersmp.h:76
Per_CPU_Control
Per CPU Core Structure.
Definition:
percpu.h:347
Scheduler_SMP_Context::Base
Scheduler_Context Base
Basic scheduler context.
Definition:
schedulersmp.h:50
Scheduler_SMP_Node
Scheduler node specialization for SMP schedulers.
Definition:
schedulersmp.h:100
Scheduler_SMP_Context::Idle_threads
Chain_Control Idle_threads
Chain of the available idle threads.
Definition:
schedulersmp.h:64
Scheduler_SMP_Node::Base
Scheduler_Node Base
Basic scheduler node.
Definition:
schedulersmp.h:104
chain.h
Chain Handler API.
_Scheduler_Control
Scheduler control.
Definition:
scheduler.h:264
Scheduler_Node
Scheduler node for per-thread data.
Definition:
schedulernode.h:79
scheduler.h
Constants and Structures Associated with the Scheduler.
_Scheduler_SMP_Start_idle
void _Scheduler_SMP_Start_idle(const Scheduler_Control *scheduler, Thread_Control *idle, struct Per_CPU_Control *cpu)
Starts an idle thread on the specified cpu.
Definition:
schedulersmpstartidle.c:15
Generated by
1.8.14