source: rtems/cpukit/sapi/inline/rtems/extension.inl @ 1a8fde6c

4.104.114.84.95
Last change on this file since 1a8fde6c was 1a8fde6c, checked in by Joel Sherrill <joel.sherrill@…>, on 03/06/96 at 21:34:57

Removed prototyes for static inline routines and moved the comments into
the inline implementation. The impetus for this was twofold. First,
it is incorrect to have static inline prototypes when using the macro
implementation. Second, this reduced the number of lines in the include
files seen by rtems.h by about 2000 lines.

Next we restricted visibility for the inline routines to inside the
executive itself EXCEPT for a handful of objects. This reduced the
number of include files included by rtems.h by 40 files and reduced
the lines in the include files seen by rtems.h by about 6000 lines.

In total, these reduced the compile time of the entire RTEMS tree by 20%.
This results in about 8 minutes savings on the SparcStation? 10 morgana.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*  extension.inl
2 *
3 *  This file contains the static inline implementation of the inlined routines
4 *  from the Extension Manager.
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 __EXTENSION_MANAGER_inl
18#define __EXTENSION_MANAGER_inl
19
20/*PAGE
21 *
22 *  _Extension_Allocate
23 *
24 *  DESCRIPTION:
25 *
26 *  This function allocates a extension control block from
27 *  the inactive chain of free extension control blocks.
28 */
29
30STATIC INLINE Extension_Control *_Extension_Allocate( void )
31{
32  return (Extension_Control *) _Objects_Allocate( &_Extension_Information );
33}
34
35/*PAGE
36 *
37 *  _Extension_Free
38 *
39 *  DESCRIPTION:
40 *
41 *  This routine frees a extension control block to the
42 *  inactive chain of free extension control blocks.
43 */
44
45STATIC INLINE void _Extension_Free (
46  Extension_Control *the_extension
47)
48{
49  _Objects_Free( &_Extension_Information, &the_extension->Object );
50}
51
52/*PAGE
53 *
54 *  _Extension_Get
55 *
56 *  DESCRIPTION:
57 *
58 *  This function maps extension IDs to extension control blocks.
59 *  If ID corresponds to a local extension, then it returns
60 *  the extension control pointer which maps to ID and location
61 *  is set to OBJECTS_LOCAL.  Otherwise, location is set
62 *  to OBJECTS_ERROR and the returned value is undefined.
63 */
64
65STATIC INLINE Extension_Control *_Extension_Get (
66  Objects_Id         id,
67  Objects_Locations *location
68)
69{
70  return (Extension_Control *)
71    _Objects_Get( &_Extension_Information, id, location );
72}
73
74/*PAGE
75 *
76 *  _Extension_Is_null
77 *
78 *  DESCRIPTION:
79 *
80 *  This function returns TRUE if the_extension is NULL and FALSE otherwise.
81 */
82
83STATIC INLINE boolean _Extension_Is_null (
84  Extension_Control *the_extension
85)
86{
87  return ( the_extension == NULL );
88}
89
90#endif
91/* end of include file */
Note: See TracBrowser for help on using the repository browser.