source: rtems/cpukit/score/include/rtems/score/stack.h @ ac7d5ef0

4.104.114.84.95
Last change on this file since ac7d5ef0 was ac7d5ef0, checked in by Joel Sherrill <joel.sherrill@…>, on May 11, 1995 at 5:39:37 PM

Initial revision

  • Property mode set to 100644
File size: 2.1 KB
Line 
1/*  stack.h
2 *
3 *  This include file contains all information about the thread
4 *  Stack Handler.  This Handler provides mechanisms which can be used to
5 *  initialize and utilize stacks.
6 *
7 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
8 *  On-Line Applications Research Corporation (OAR).
9 *  All rights assigned to U.S. Government, 1994.
10 *
11 *  This material may be reproduced by or for the U.S. Government pursuant
12 *  to the copyright license under the clause at DFARS 252.227-7013.  This
13 *  notice must appear in all copies of this file and its derivatives.
14 *
15 *  $Id$
16 */
17
18#ifndef __RTEMS_STACK_h
19#define __RTEMS_STACK_h
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/*
26 *  The following constant defines the minimum stack size which every
27 *  thread must exceed.
28 */
29
30#define RTEMS_MINIMUM_STACK_SIZE  CPU_STACK_MINIMUM_SIZE
31
32/*
33 *  The following defines the control block used to manage each stack.
34 */
35
36typedef struct {
37  unsigned32  size;        /* stack size */
38  void       *area;        /* low memory addr of stack */
39}   Stack_Control;
40
41/*
42 *  _Stack_Initialize
43 *
44 *  DESCRIPTION:
45 *
46 *  This routine initializes the_stack record to indicate that
47 *  size bytes of memory starting at starting_address have been
48 *  reserved for a stack.
49 */
50
51STATIC INLINE void _Stack_Initialize (
52  Stack_Control    *the_stack,
53  void             *starting_address,
54  unsigned32        size
55);
56
57/*
58 *  _Stack_Is_enough
59 *
60 *  DESCRIPTION:
61 *
62 *  This function returns TRUE if size bytes is enough memory for
63 *  a valid stack area on this processor, and FALSE otherwise.
64 */
65
66STATIC INLINE boolean _Stack_Is_enough (
67  unsigned32 size
68);
69
70/*
71 *  _Stack_Adjust_size
72 *
73 *  DESCRIPTION:
74 *
75 *  This function increases the stack size to insure that the thread
76 *  has the desired amount of stack space after the initial stack
77 *  pointer is determined based on alignment restrictions.
78 *
79 *  NOTE:
80 *
81 *  The amount of adjustment for alignment is CPU dependent.
82 */
83
84STATIC INLINE unsigned32 _Stack_Adjust_size (
85  unsigned32 size
86);
87
88#include <rtems/stack.inl>
89
90#ifdef __cplusplus
91}
92#endif
93
94#endif
95/* end of include file */
Note: See TracBrowser for help on using the repository browser.