diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-12-14 13:17:19 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-12-14 13:17:19 +0000 |
commit | 9fa3cf0db84cbabdb639cdeb7565f4c3ca3bc562 (patch) | |
tree | 01dd8f3965e89b4f12c701aebe38eb6de63acc2c /cpukit/score/src/thread.c | |
parent | 2011-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-9fa3cf0db84cbabdb639cdeb7565f4c3ca3bc562.tar.bz2 |
2011-12-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1924/cpukit
* sapi/include/rtems/config.h: Added stack_allocate_init_hook to
rtems_configuration_table.
* sapi/include/confdefs.h: Added CONFIGURE_TASK_STACK_FROM_ALLOCATOR
and CONFIGURE_TASK_STACK_ALLOCATOR_INIT defines. Set default stack
allocator and free hook to _Workspace_Allocate() and _Workspace_Free()
respectively.
* score/src/thread.c, score/src/threadstackallocate.c,
score/src/threadstackfree.c: Update due to API changes.
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/src/thread.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index 3736f6eda8..613ef77e92 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -49,30 +49,29 @@ void _Thread_Handler_initialization(void) { - uint32_t ticks_per_timeslice; - uint32_t maximum_extensions; + uint32_t ticks_per_timeslice = + rtems_configuration_get_ticks_per_timeslice(); + uint32_t maximum_extensions = + rtems_configuration_get_maximum_extensions(); + rtems_stack_allocate_init_hook stack_allocate_init_hook = + rtems_configuration_get_stack_allocate_init_hook(); uint32_t maximum_internal_threads; #if defined(RTEMS_MULTIPROCESSING) - uint32_t maximum_proxies; + uint32_t maximum_proxies = + _Configuration_MP_table->maximum_proxies; #endif - ticks_per_timeslice = Configuration.ticks_per_timeslice; - maximum_extensions = Configuration.maximum_extensions; - #if defined(RTEMS_MULTIPROCESSING) - maximum_proxies = _Configuration_MP_table->maximum_proxies; - #endif - /* - * BOTH stacks hooks must be set or both must be NULL. - * Do not allow mixture. - */ - if ( !( (!Configuration.stack_allocate_hook) - == (!Configuration.stack_free_hook) ) ) + if ( rtems_configuration_get_stack_allocate_hook() == NULL || + rtems_configuration_get_stack_free_hook() == NULL) _Internal_error_Occurred( INTERNAL_ERROR_CORE, true, INTERNAL_ERROR_BAD_STACK_HOOK ); + if ( stack_allocate_init_hook != NULL ) + (*stack_allocate_init_hook)( rtems_configuration_get_stack_space_size() ); + _Thread_Dispatch_necessary = false; _Thread_Executing = NULL; _Thread_Heir = NULL; |