source: rtems/c/src/exec/score/inline/stack.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.7 KB
Line 
1/*  stack.inl
2 *
3 *  This file contains the static inline implementation of the inlined
4 *  routines from the Stack Handler.
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 __STACK_inl
18#define __STACK_inl
19
20/*PAGE
21 *
22 *  _Stack_Initialize
23 *
24 *  DESCRIPTION:
25 *
26 *  This routine initializes the_stack record to indicate that
27 *  size bytes of memory starting at starting_address have been
28 *  reserved for a stack.
29 */
30
31STATIC INLINE void _Stack_Initialize (
32  Stack_Control *the_stack,
33  void          *starting_address,
34  unsigned32     size
35)
36{
37  the_stack->area = starting_address;
38  the_stack->size = size;
39}
40
41/*PAGE
42 *
43 *  _Stack_Is_enough
44 *
45 *  DESCRIPTION:
46 *
47 *  This function returns TRUE if size bytes is enough memory for
48 *  a valid stack area on this processor, and FALSE otherwise.
49 */
50
51STATIC INLINE boolean _Stack_Is_enough (
52  unsigned32 size
53)
54{
55  return ( size >= STACK_MINIMUM_SIZE );
56}
57
58/*PAGE
59 *
60 *  _Stack_Adjust_size
61 *
62 *  DESCRIPTION:
63 *
64 *  This function increases the stack size to insure that the thread
65 *  has the desired amount of stack space after the initial stack
66 *  pointer is determined based on alignment restrictions.
67 *
68 *  NOTE:
69 *
70 *  The amount of adjustment for alignment is CPU dependent.
71 */
72
73STATIC INLINE unsigned32 _Stack_Adjust_size (
74  unsigned32 size
75)
76{
77  return size + CPU_STACK_ALIGNMENT;
78}
79
80#endif
81/* end of include file */
Note: See TracBrowser for help on using the repository browser.