RTEMS 6.1-rc2
Loading...
Searching...
No Matches
barrierimpl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/*
13 * COPYRIGHT (c) 1989-2008.
14 * On-Line Applications Research Corporation (OAR).
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions
18 * are met:
19 * 1. Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 */
37
38#ifndef _RTEMS_RTEMS_BARRIERIMPL_H
39#define _RTEMS_RTEMS_BARRIERIMPL_H
40
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
65static inline Barrier_Control *_Barrier_Allocate( void )
66{
68}
69
76static inline void _Barrier_Free (
77 Barrier_Control *the_barrier
78)
79{
80 _CORE_barrier_Destroy( &the_barrier->Barrier );
81 _Objects_Free( &_Barrier_Information, &the_barrier->Object );
82}
83
84static inline Barrier_Control *_Barrier_Get(
85 Objects_Id id,
86 Thread_queue_Context *queue_context
87)
88{
89 _Thread_queue_Context_initialize( queue_context );
91 id,
92 &queue_context->Lock_context.Lock_context,
94 );
95}
96
99#ifdef __cplusplus
100}
101#endif
102
103#endif
104/* end of include file */
This header file provides data structures used by the implementation and the Application Configuratio...
This header file provides interfaces of the Barrier Handler which are only used by the implementation...
Objects_Information _Barrier_Information
The Classic Barrier objects information.
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:43
uint32_t Objects_Id
Definition: object.h:101
Objects_Control * _Objects_Get(Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
Maps the specified object identifier to the associated local object control block.
Definition: objectgetlocal.c:43
This header file provides interfaces of the Object Handler which are only used by the implementation.
Definition: barrierdata.h:58
CORE_barrier_Control Barrier
Definition: barrierdata.h:62
Objects_Control Object
Definition: barrierdata.h:60
Thread queue context for the thread queue methods.
Definition: threadq.h:216
Thread_queue_Lock_context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:221
ISR_lock_Context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:148