RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
rtems
score
coremutex.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
12
13
/*
14
* COPYRIGHT (c) 1989-2011.
15
* On-Line Applications Research Corporation (OAR).
16
*
17
* Redistribution and use in source and binary forms, with or without
18
* modification, are permitted provided that the following conditions
19
* are met:
20
* 1. Redistributions of source code must retain the above copyright
21
* notice, this list of conditions and the following disclaimer.
22
* 2. Redistributions in binary form must reproduce the above copyright
23
* notice, this list of conditions and the following disclaimer in the
24
* documentation and/or other materials provided with the distribution.
25
*
26
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
30
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36
* POSSIBILITY OF SUCH DAMAGE.
37
*/
38
39
#ifndef _RTEMS_SCORE_COREMUTEX_H
40
#define _RTEMS_SCORE_COREMUTEX_H
41
42
#include <
rtems/score/thread.h
>
43
#include <
rtems/score/threadq.h
>
44
#include <
rtems/score/priority.h
>
45
#include <
rtems/score/watchdog.h
>
46
#include <
rtems/score/interr.h
>
47
48
struct
_Scheduler_Control
;
49
50
#ifdef __cplusplus
51
extern
"C"
{
52
#endif
53
68
74
typedef
struct
{
80
Thread_queue_Control
Wait_queue
;
81
}
CORE_mutex_Control
;
82
86
typedef
struct
{
90
CORE_mutex_Control
Mutex
;
91
95
unsigned
int
nest_level
;
96
}
CORE_recursive_mutex_Control
;
97
101
typedef
struct
{
105
CORE_recursive_mutex_Control
Recursive
;
106
110
Priority_Node
Priority_ceiling
;
111
112
#if defined(RTEMS_SMP)
116
const
struct
_Scheduler_Control
*scheduler;
117
#endif
118
}
CORE_ceiling_mutex_Control
;
119
121
122
#ifdef __cplusplus
123
}
124
#endif
125
126
#endif
127
/* end of include file */
watchdog.h
This header file provides interfaces of the Watchdog Handler which are used by the implementation and...
interr.h
This header file provides the interfaces of the Internal Error Handler.
priority.h
This header file provides interfaces of the Priority Handler which are used by the implementation and...
thread.h
This header file provides interfaces of the Thread Handler which are used by the implementation and t...
CORE_ceiling_mutex_Control
The recursive mutex control with priority ceiling protocol support.
Definition
coremutex.h:101
CORE_ceiling_mutex_Control::Priority_ceiling
Priority_Node Priority_ceiling
The priority ceiling node for the mutex owner.
Definition
coremutex.h:110
CORE_ceiling_mutex_Control::Recursive
CORE_recursive_mutex_Control Recursive
The plain recursive mutex.
Definition
coremutex.h:105
CORE_mutex_Control
Control block used to manage each mutex.
Definition
coremutex.h:74
CORE_mutex_Control::Wait_queue
Thread_queue_Control Wait_queue
The thread queue of this mutex.
Definition
coremutex.h:80
CORE_recursive_mutex_Control
The recursive mutex control.
Definition
coremutex.h:86
CORE_recursive_mutex_Control::nest_level
unsigned int nest_level
The nest level in case of a recursive seize.
Definition
coremutex.h:95
CORE_recursive_mutex_Control::Mutex
CORE_mutex_Control Mutex
The plain non-recursive mutex.
Definition
coremutex.h:90
Priority_Node
The priority node to build up a priority aggregation.
Definition
priority.h:112
Thread_queue_Control
Definition
threadq.h:609
_Scheduler_Control
Scheduler control.
Definition
scheduler.h:337
threadq.h
This header file provides interfaces of the Thread Queue Handler which are used by the implementation...
Generated by
1.18.0