source: rtems/c/src/exec/score/inline/objectmp.inl @ a5f56a43

4.104.114.84.95
Last change on this file since a5f56a43 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: 1.5 KB
Line 
1/*  inline/objectmp.inl
2 *
3 *  This include file contains the bodies of all inlined routines
4 *  which deal with global objects.
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 __INLINE_MP_OBJECTS_inl
18#define __INLINE_MP_OBJECTS_inl
19
20/*PAGE
21 *
22 *  _Objects_MP_Allocate_global_object
23 *
24 *  DESCRIPTION:
25 *
26 *  This function allocates a Global Object control block.
27 */
28
29STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object (
30  void
31)
32{
33  return (Objects_MP_Control *)
34           _Chain_Get( &_Objects_MP_Inactive_global_objects );
35}
36
37/*PAGE
38 *
39 *  _Objects_MP_Free_global_object
40 *
41 *  DESCRIPTION:
42 *
43 *  This routine deallocates a Global Object control block.
44 */
45
46STATIC INLINE void _Objects_MP_Free_global_object (
47  Objects_MP_Control *the_object
48)
49{
50  _Chain_Append(
51    &_Objects_MP_Inactive_global_objects,
52    &the_object->Object.Node
53  );
54}
55
56/*PAGE
57 *
58 *  _Objects_MP_Is_null_global_object
59 *
60 *  DESCRIPTION:
61 *
62 *  This function returns whether the global object is NULL or not.
63 */
64
65STATIC INLINE boolean _Objects_MP_Is_null_global_object (
66  Objects_MP_Control *the_object
67)
68{
69  return( the_object == NULL );
70}
71
72#endif
73/* end of include file */
Note: See TracBrowser for help on using the repository browser.