source: rtems/cpukit/rtems/include/rtems/rtems/barrierimpl.h @ 582bb23c

5
Last change on this file since 582bb23c was 582bb23c, checked in by Sebastian Huber <sebastian.huber@…>, on 05/20/16 at 13:04:16

score: Rename _Objects_Get_local()

Rename _Objects_Get_local() into _Objects_Get(). Confusions with the
previous _Objects_Get() function are avoided since the Objects_Locations
parameter is gone.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/**
2 * @file rtems/rtems/barrier.inl
3 *
4 * @defgroup ClassicBarrier Barriers
5 *
6 * @ingroup ClassicRTEMS
7 * @brief Inline Implementation from Barrier Manager
8 *
9 * This file contains the static inlin implementation of the inlined
10 * routines from the Barrier Manager.
11 */
12
13/*
14 * COPYRIGHT (c) 1989-2008.
15 * On-Line Applications Research Corporation (OAR).
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.org/license/LICENSE.
20 */
21
22#ifndef _RTEMS_RTEMS_BARRIERIMPL_H
23#define _RTEMS_RTEMS_BARRIERIMPL_H
24
25#include <rtems/rtems/barrier.h>
26#include <rtems/score/corebarrierimpl.h>
27#include <rtems/score/objectimpl.h>
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/**
34 *  @defgroup ClassicBarrierImpl Classic Barrier Implementation
35 *
36 *  @ingroup ClassicBarrier
37 *
38 *  @{
39 */
40
41/**
42 *  The following defines the information control block used to manage
43 *  this class of objects.
44 */
45extern Objects_Information _Barrier_Information;
46
47/**
48 *  @brief _Barrier_Allocate
49 *
50 *  This function allocates a barrier control block from
51 *  the inactive chain of free barrier control blocks.
52 */
53RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Allocate( void )
54{
55  return (Barrier_Control *) _Objects_Allocate( &_Barrier_Information );
56}
57
58/**
59 *  @brief _Barrier_Free
60 *
61 *  This routine frees a barrier control block to the
62 *  inactive chain of free barrier control blocks.
63 */
64RTEMS_INLINE_ROUTINE void _Barrier_Free (
65  Barrier_Control *the_barrier
66)
67{
68  _CORE_barrier_Destroy( &the_barrier->Barrier );
69  _Objects_Free( &_Barrier_Information, &the_barrier->Object );
70}
71
72RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get(
73  Objects_Id        id,
74  ISR_lock_Context *lock_context
75)
76{
77  return (Barrier_Control *)
78    _Objects_Get( id, lock_context, &_Barrier_Information );
79}
80
81/**
82 * @brief Translate SuperCore Barrier Status Code to RTEMS Status Code
83 *
84 * This function returns a RTEMS status code based on the barrier
85 * status code specified.
86 *
87 * @param[in] the_status is the SuperCore Barrier status to translate.
88 *
89 * @retval a status code indicating success or the reason for failure.
90 */
91rtems_status_code _Barrier_Translate_core_barrier_return_code (
92  CORE_barrier_Status  the_status
93);
94
95/**@}*/
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif
102/*  end of include file */
Note: See TracBrowser for help on using the repository browser.