summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/inline/rtems/score/stack.inl
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/score/inline/rtems/score/stack.inl')
-rw-r--r--c/src/exec/score/inline/rtems/score/stack.inl81
1 files changed, 81 insertions, 0 deletions
diff --git a/c/src/exec/score/inline/rtems/score/stack.inl b/c/src/exec/score/inline/rtems/score/stack.inl
new file mode 100644
index 0000000000..03eb35b554
--- /dev/null
+++ b/c/src/exec/score/inline/rtems/score/stack.inl
@@ -0,0 +1,81 @@
+/* stack.inl
+ *
+ * This file contains the static inline implementation of the inlined
+ * routines from the Stack Handler.
+ *
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may in
+ * the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#ifndef __STACK_inl
+#define __STACK_inl
+
+/*PAGE
+ *
+ * _Stack_Initialize
+ *
+ * DESCRIPTION:
+ *
+ * This routine initializes the_stack record to indicate that
+ * size bytes of memory starting at starting_address have been
+ * reserved for a stack.
+ */
+
+RTEMS_INLINE_ROUTINE void _Stack_Initialize (
+ Stack_Control *the_stack,
+ void *starting_address,
+ unsigned32 size
+)
+{
+ the_stack->area = starting_address;
+ the_stack->size = size;
+}
+
+/*PAGE
+ *
+ * _Stack_Is_enough
+ *
+ * DESCRIPTION:
+ *
+ * This function returns TRUE if size bytes is enough memory for
+ * a valid stack area on this processor, and FALSE otherwise.
+ */
+
+RTEMS_INLINE_ROUTINE boolean _Stack_Is_enough (
+ unsigned32 size
+)
+{
+ return ( size >= STACK_MINIMUM_SIZE );
+}
+
+/*PAGE
+ *
+ * _Stack_Adjust_size
+ *
+ * DESCRIPTION:
+ *
+ * This function increases the stack size to insure that the thread
+ * has the desired amount of stack space after the initial stack
+ * pointer is determined based on alignment restrictions.
+ *
+ * NOTE:
+ *
+ * The amount of adjustment for alignment is CPU dependent.
+ */
+
+RTEMS_INLINE_ROUTINE unsigned32 _Stack_Adjust_size (
+ unsigned32 size
+)
+{
+ return size + CPU_STACK_ALIGNMENT;
+}
+
+#endif
+/* end of include file */