source: rtems/cpukit/rtems/inline/rtems/rtems/sem.inl @ 067a96a

4.104.114.95
Last change on this file since 067a96a was 067a96a, checked in by Joel Sherrill <joel.sherrill@…>, on 04/18/08 at 15:02:20

2008-04-18 Joel Sherrill <joel.sherrill@…>

  • rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/asr.inl, rtems/inline/rtems/rtems/attr.inl, rtems/inline/rtems/rtems/barrier.inl, rtems/inline/rtems/rtems/dpmem.inl, rtems/inline/rtems/rtems/event.inl, rtems/inline/rtems/rtems/eventset.inl, rtems/inline/rtems/rtems/message.inl, rtems/inline/rtems/rtems/modes.inl, rtems/inline/rtems/rtems/options.inl, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/ratemon.inl, rtems/inline/rtems/rtems/region.inl, rtems/inline/rtems/rtems/sem.inl, rtems/inline/rtems/rtems/status.inl, rtems/inline/rtems/rtems/support.inl, rtems/inline/rtems/rtems/tasks.inl, rtems/inline/rtems/rtems/timer.inl: Initial conversion of Classic API header files to Doxygen.
  • rtems/Doxyfile: New file.
  • Property mode set to 100644
File size: 2.3 KB
Line 
1/**
2 * @file rtems/rtems/sem.inl
3 *
4 *  This file contains the static inlin implementation of the inlined
5 *  routines from the Semaphore Manager.
6 */
7
8/*  COPYRIGHT (c) 1989-1999.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.com/license/LICENSE.
14 *
15 *  $Id$
16 */
17
18#ifndef _RTEMS_RTEMS_SEM_INL
19#define _RTEMS_RTEMS_SEM_INL
20
21/**
22 *  @addtogroup ClassicSem
23 *  @{
24 */
25
26/**
27 *  @brief Semaphore_Allocate
28 *
29 *  This function allocates a semaphore control block from
30 *  the inactive chain of free semaphore control blocks.
31 */
32RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Allocate( void )
33{
34  return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information );
35}
36
37/**
38 *  @brief Semaphore_Free
39 *
40 *  This routine frees a semaphore control block to the
41 *  inactive chain of free semaphore control blocks.
42 */
43RTEMS_INLINE_ROUTINE void _Semaphore_Free (
44  Semaphore_Control *the_semaphore
45)
46{
47  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );
48}
49
50/**
51 *  @brief Semaphore_Get
52 *
53 *  This function maps semaphore IDs to semaphore control blocks.
54 *  If ID corresponds to a local semaphore, then it returns
55 *  the_semaphore control pointer which maps to ID and location
56 *  is set to OBJECTS_LOCAL.  if the semaphore ID is global and
57 *  resides on a remote node, then location is set to OBJECTS_REMOTE,
58 *  and the_semaphore is undefined.  Otherwise, location is set
59 *  to OBJECTS_ERROR and the_semaphore is undefined.
60 */
61RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get (
62  Objects_Id         id,
63  Objects_Locations *location
64)
65{
66  return (Semaphore_Control *)
67    _Objects_Get( &_Semaphore_Information, id, location );
68}
69
70RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get_interrupt_disable (
71  Objects_Id         id,
72  Objects_Locations *location,
73  ISR_Level         *level
74)
75{
76  return (Semaphore_Control *)
77    _Objects_Get_isr_disable( &_Semaphore_Information, id, location, level );
78}
79
80/**
81 *  @brief Semaphore_Is_null
82 *
83 *  This function returns TRUE if the_semaphore is NULL and FALSE otherwise.
84 */
85RTEMS_INLINE_ROUTINE boolean _Semaphore_Is_null (
86  Semaphore_Control *the_semaphore
87)
88{
89  return ( the_semaphore == NULL );
90}
91
92/**@}*/
93
94#endif
95/*  end of include file */
Note: See TracBrowser for help on using the repository browser.