Use the Configuration instead. Fix an off-by-one error in the allocation and initialization. --- cpukit/sapi/include/confdefs.h | 2 +- cpukit/score/include/rtems/score/threadimpl.h | 7 ------- cpukit/score/src/thread.c | 4 ---- cpukit/score/src/threadinitialize.c | 10 ++++------ testsuites/sptests/spsize/size.c | 1 - 5 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index 4bfe4e8..1ee3b21 100644 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -2080,7 +2080,7 @@ const rtems_libio_helper rtems_fs_init_helper = + CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API \ + CONFIGURE_MEMORY_PER_TASK_FOR_SCHEDULER \ + _Configure_From_workspace( \ - (CONFIGURE_MAXIMUM_USER_EXTENSIONS + 1) * sizeof(void *) \ + CONFIGURE_MAXIMUM_USER_EXTENSIONS * sizeof(void *) \ ) \ ) \ + _Configure_Max_Objects(_number_FP_tasks) \ diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index 6d4ca9f..f109d39 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -58,13 +58,6 @@ SCORE_EXTERN void *rtems_ada_self; SCORE_EXTERN Objects_Information _Thread_Internal_information; /** - * The following holds how many user extensions are in the system. This - * is used to determine how many user extension data areas to allocate - * per thread. - */ -SCORE_EXTERN uint32_t _Thread_Maximum_extensions; - -/** * The following is used to manage the length of a timeslice quantum. */ SCORE_EXTERN uint32_t _Thread_Ticks_per_timeslice; diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index 5063c78..589e474 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -25,8 +25,6 @@ void _Thread_Handler_initialization(void) { 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(); #if defined(RTEMS_MULTIPROCESSING) @@ -52,8 +50,6 @@ void _Thread_Handler_initialization(void) _Thread_Allocated_fp = NULL; #endif - _Thread_Maximum_extensions = maximum_extensions; - _Thread_Ticks_per_timeslice = ticks_per_timeslice; #if defined(RTEMS_MULTIPROCESSING) diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c index cf96c24..490fc25 100644 --- a/cpukit/score/src/threadinitialize.c +++ b/cpukit/score/src/threadinitialize.c @@ -155,9 +155,9 @@ bool _Thread_Initialize( /* * Allocate the extensions area for this thread */ - if ( _Thread_Maximum_extensions ) { + if ( rtems_configuration_get_maximum_extensions() ) { extensions_area = _Workspace_Allocate( - (_Thread_Maximum_extensions + 1) * sizeof( void * ) + rtems_configuration_get_maximum_extensions() * sizeof( void * ) ); if ( !extensions_area ) goto failed; @@ -171,10 +171,8 @@ bool _Thread_Initialize( * so they cannot rely on the thread create user extension * call. */ - if ( the_thread->extensions ) { - for ( i = 0; i <= _Thread_Maximum_extensions ; i++ ) - the_thread->extensions[i] = NULL; - } + for ( i = 0 ; i < rtems_configuration_get_maximum_extensions() ; i++ ) + the_thread->extensions[i] = NULL; /* * General initialization diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c index f24bc9b..1d4c96b 100644 --- a/testsuites/sptests/spsize/size.c +++ b/testsuites/sptests/spsize/size.c @@ -385,7 +385,6 @@ uninitialized = /*tasksimpl.h*/ (sizeof _RTEMS_tasks_Information) + /*thread.h*/ (sizeof _Thread_Dispatch_disable_level) + - (sizeof _Thread_Maximum_extensions) + (sizeof _Thread_Ticks_per_timeslice) + (sizeof _Thread_Executing) + (sizeof _Thread_Heir) + -- 1.7.7 _______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel