diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-06-13 15:06:32 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-06-13 15:06:32 +0000 |
commit | ecf0f4c4c18956576aeb69372b93910af7ca37e9 (patch) | |
tree | bdc81902ff221b497c67e31822a08dbd69b69a40 /cpukit/score/inline/rtems/score | |
parent | 2008-06-10 Chris Johns <chrisj@rtems.org> (diff) | |
download | rtems-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')
-rw-r--r-- | cpukit/score/inline/rtems/score/stack.inl | 38 |
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(); } /** |