RTEMS
Main Page
Related Pages
Modules
+
Classes
Class List
Class Index
+
Class Members
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
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
y
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Functions
_
b
c
g
m
p
r
s
t
u
v
+
Variables
_
b
c
r
+
Typedefs
b
c
f
h
i
o
p
r
s
t
u
w
+
Enumerations
c
h
i
m
o
p
r
s
t
w
+
Enumerator
c
h
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
•
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
cpukit
rtems
src
barrierrelease.c
Go to the documentation of this file.
1
9
/*
10
* COPYRIGHT (c) 1989-2007.
11
* 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
#ifdef HAVE_CONFIG_H
19
#include "config.h"
20
#endif
21
22
#include <
rtems/rtems/barrierimpl.h
>
23
24
rtems_status_code
rtems_barrier_release
(
25
rtems_id
id
,
26
uint32_t *released
27
)
28
{
29
Barrier_Control
*the_barrier;
30
Thread_queue_Context
queue_context;
31
32
if
( released == NULL ) {
33
return
RTEMS_INVALID_ADDRESS
;
34
}
35
36
the_barrier = _Barrier_Get(
id
, &queue_context );
37
38
if
( the_barrier == NULL ) {
39
return
RTEMS_INVALID_ID
;
40
}
41
42
_CORE_barrier_Acquire_critical
( &the_barrier->
Barrier
, &queue_context );
43
*released =
_CORE_barrier_Surrender
(
44
&the_barrier->
Barrier
,
45
&queue_context
46
);
47
return
RTEMS_SUCCESSFUL
;
48
}
_CORE_barrier_Surrender
static __inline__ uint32_t _CORE_barrier_Surrender(CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context)
Manually releases the barrier.
Definition:
corebarrierimpl.h:141
rtems_barrier_release
rtems_status_code rtems_barrier_release(rtems_id id, uint32_t *released)
%
Definition:
barrierrelease.c:24
Thread_queue_Context
Thread queue context for the thread queue methods.
Definition:
threadq.h:198
RTEMS_SUCCESSFUL
This status code indicates successful completion.
Definition:
status.h:86
rtems_status_code
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition:
status.h:82
Barrier_Control
Definition:
barrierdata.h:38
_CORE_barrier_Acquire_critical
static __inline__ void _CORE_barrier_Acquire_critical(CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context)
Acquires critical core barrier.
Definition:
corebarrierimpl.h:73
RTEMS_INVALID_ADDRESS
This status code indicates that a specified address was invalid.
Definition:
status.h:133
RTEMS_INVALID_ID
This status code indicates that an object identifier was invalid.
Definition:
status.h:106
rtems_id
Objects_Id rtems_id
Values of this type identify an RTEMS object.
Definition:
types.h:99
Barrier_Control::Barrier
CORE_barrier_Control Barrier
Definition:
barrierdata.h:42
barrierimpl.h
Classic Barrier Manager Implementation.
Generated by
1.8.14