summaryrefslogtreecommitdiffstats
path: root/cpukit/score/inline/rtems/score/stack.inl
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-06-13 15:06:32 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-06-13 15:06:32 +0000
commitecf0f4c4c18956576aeb69372b93910af7ca37e9 (patch)
treebdc81902ff221b497c67e31822a08dbd69b69a40 /cpukit/score/inline/rtems/score/stack.inl
parent2008-06-10 Chris Johns <chrisj@rtems.org> (diff)
downloadrtems-ecf0f4c4c18956576aeb69372b93910af7ca37e9.tar.bz2
2008-06-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* posix/include/rtems/posix/pthread.h, posix/src/pthread.c, posix/src/pthreadcreate.c, rtems/include/rtems.h, rtems/src/attr.c, sapi/include/confdefs.h, sapi/include/rtems/config.h, score/inline/rtems/score/stack.inl, score/src/isr.c, score/src/mpci.c, score/src/threadcreateidle.c, score/src/threadinitialize.c, score/src/threadstackallocate.c: Add ability for application to configure minimum stack size. Add RTEMS_CONFIGURED_MINIMUM_STACK_SIZE constant so user can clearly indicate they want the configured as opposed to the recommended minimum stack size.
Diffstat (limited to 'cpukit/score/inline/rtems/score/stack.inl')
-rw-r--r--cpukit/score/inline/rtems/score/stack.inl38
1 files changed, 35 insertions, 3 deletions
diff --git a/cpukit/score/inline/rtems/score/stack.inl b/cpukit/score/inline/rtems/score/stack.inl
index cfa634df95..7726cf1a05 100644
--- a/cpukit/score/inline/rtems/score/stack.inl
+++ b/cpukit/score/inline/rtems/score/stack.inl
@@ -29,7 +29,6 @@
* 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,
@@ -41,15 +40,48 @@ RTEMS_INLINE_ROUTINE void _Stack_Initialize (
}
/**
+ * This function returns the minimum stack size configured
+ * for this application.
+ *
+ * @return This method returns the minimum stack size;
+ */
+RTEMS_INLINE_ROUTINE uint32_t _Stack_Minimum (void)
+{
+ extern uint32_t rtems_minimum_stack_size;
+ return rtems_minimum_stack_size;
+}
+
+/**
* This function returns TRUE if size bytes is enough memory for
* a valid stack area on this processor, and FALSE otherwise.
+ *
+ * @param[in] size is the stack size to check
+ *
+ * @return This method returns TRUE if the stack is large enough.
*/
-
RTEMS_INLINE_ROUTINE boolean _Stack_Is_enough (
size_t size
)
{
- return ( size >= STACK_MINIMUM_SIZE );
+ return ( size >= _Stack_Minimum() );
+}
+
+/**
+ * This function returns the appropriate stack size given the requested
+ * size. If the requested size is below the minimum, then the minimum
+ * configured stack size is returned.
+ *
+ * @param[in] size is the stack size to check
+ *
+ * @return This method returns the appropriate stack size.
+ */
+RTEMS_INLINE_ROUTINE size_t _Stack_Ensure_minimum (
+ size_t size
+)
+{
+ if ( size >= _Stack_Minimum() )
+ return size;
+ return _Stack_Minimum();
}
/**