[PATCH 1/5] score: Delete _Thread_Maximum_extensions

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Apr 4 15:07:37 UTC 2014


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




More information about the devel mailing list