source: rtems/c/src/exec/posix/inline/mutex.inl @ 503dc058

4.104.114.84.95
Last change on this file since 503dc058 was 503dc058, checked in by Joel Sherrill <joel.sherrill@…>, on 07/03/96 at 14:20:03

switched from "STATIC INLINE" to "RTEMS_INLINE_ROUTINE"

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*  rtems/posix/mutex.inl
2 *
3 *  This include file contains the static inline implementation of the private
4 *  inlined routines for POSIX mutex's.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16 
17#ifndef __RTEMS_POSIX_MUTEX_inl
18#define __RTEMS_POSIX_MUTEX_inl
19 
20/*PAGE
21 *
22 *  _POSIX_Mutex_Allocate
23 */
24 
25RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void )
26{
27  return (POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information );
28}
29 
30/*PAGE
31 *
32 *  _POSIX_Mutex_Free
33 */
34 
35RTEMS_INLINE_ROUTINE void _POSIX_Mutex_Free (
36  POSIX_Mutex_Control *the_mutex
37)
38{
39  _Objects_Free( &_POSIX_Mutex_Information, &the_mutex->Object );
40}
41 
42/*PAGE
43 *
44 *  _POSIX_Mutex_Get
45 */
46 
47RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Get (
48  Objects_Id        *id,
49  Objects_Locations *location
50)
51{
52  int status;
53
54  if ( *id == PTHREAD_MUTEX_INITIALIZER ) {
55    /*
56     *  Do an "auto-create" here.
57     */
58
59    status = pthread_mutex_init( id, 0 );
60    if ( status ) {
61      *location = OBJECTS_ERROR;
62      return (POSIX_Mutex_Control *) 0;
63    }
64  }
65
66  /*
67   *  Now call Objects_Get()
68   */
69
70  return (POSIX_Mutex_Control *)
71    _Objects_Get( &_POSIX_Mutex_Information, *id, location );
72}
73 
74/*PAGE
75 *
76 *  _POSIX_Mutex_Is_null
77 */
78 
79RTEMS_INLINE_ROUTINE boolean _POSIX_Mutex_Is_null (
80  POSIX_Mutex_Control *the_mutex
81)
82{
83  return !the_mutex;
84}
85
86#endif
87/*  end of include file */
88
Note: See TracBrowser for help on using the repository browser.