[PATCH 6/7] score: Remove Objects_Information::maximum

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Nov 26 13:12:13 UTC 2018


This information is already present in Objects_Information::maximum_id.
Add and use _Objects_Get_maximum_index().

Update #3621.
---
 cpukit/include/rtems/score/objectimpl.h        | 18 +++++--
 cpukit/posix/src/killinfo.c                    |  2 +-
 cpukit/rtems/src/rtemsobjectgetclassinfo.c     |  2 +-
 cpukit/score/src/objectactivecount.c           | 11 ++--
 cpukit/score/src/objectextendinformation.c     | 20 +++----
 cpukit/score/src/objectgetinfo.c               |  2 +-
 cpukit/score/src/objectgetnext.c               | 22 ++++----
 cpukit/score/src/objectinitializeinformation.c | 17 ++----
 cpukit/score/src/objectnametoid.c              |  6 ++-
 cpukit/score/src/objectnametoidstring.c        | 11 ++--
 cpukit/score/src/objectshrinkinformation.c     |  2 +-
 cpukit/score/src/threaditerate.c               |  9 ++--
 testsuites/sptests/spsysinit01/init.c          | 72 ++++++++++++++------------
 13 files changed, 105 insertions(+), 89 deletions(-)

diff --git a/cpukit/include/rtems/score/objectimpl.h b/cpukit/include/rtems/score/objectimpl.h
index a516e21c65..cf670b9c98 100644
--- a/cpukit/include/rtems/score/objectimpl.h
+++ b/cpukit/include/rtems/score/objectimpl.h
@@ -124,8 +124,6 @@ typedef struct {
   Objects_Id        maximum_id;
   /** This points to the table of local objects. */
   Objects_Control **local_table;
-  /** This is the maximum number of objects in this class. */
-  Objects_Maximum   maximum;
   /** This is the number of objects on the Inactive list. */
   Objects_Maximum   inactive;
   /** This is the number of objects in a block. */
@@ -850,6 +848,20 @@ RTEMS_INLINE_ROUTINE Objects_Id _Objects_Get_minimum_id( Objects_Id id )
   return id;
 }
 
+/**
+ * Returns the maximum index of the specified object class.
+ *
+ * @param[in] information The object information.
+ *
+ * @return The maximum index of the specified object class.
+ */
+RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_maximum_index(
+  const Objects_Information *information
+)
+{
+  return _Objects_Get_index( information->maximum_id );
+}
+
 /**
  * This function sets the pointer to the local_table object
  * referenced by the index.
@@ -876,7 +888,7 @@ RTEMS_INLINE_ROUTINE void _Objects_Set_local_object(
    *  occur in normal situations.
    */
   _Assert( index >= OBJECTS_INDEX_MINIMUM );
-  _Assert( index <= information->maximum );
+  _Assert( index <= _Objects_Get_maximum_index( information ) );
 
   information->local_table[ index - OBJECTS_INDEX_MINIMUM ] = the_object;
 }
diff --git a/cpukit/posix/src/killinfo.c b/cpukit/posix/src/killinfo.c
index cabd91c700..0031b7bdd8 100644
--- a/cpukit/posix/src/killinfo.c
+++ b/cpukit/posix/src/killinfo.c
@@ -207,7 +207,7 @@ int _POSIX_signals_Send(
     if ( !the_info )
       continue;
 
-    maximum = the_info->maximum;
+    maximum = _Objects_Get_maximum_index( the_info );
     object_table = the_info->local_table;
 
     for ( index = 0 ; index < maximum ; ++index ) {
diff --git a/cpukit/rtems/src/rtemsobjectgetclassinfo.c b/cpukit/rtems/src/rtemsobjectgetclassinfo.c
index 3ebe3535f5..a2b07e36ea 100644
--- a/cpukit/rtems/src/rtemsobjectgetclassinfo.c
+++ b/cpukit/rtems/src/rtemsobjectgetclassinfo.c
@@ -47,7 +47,7 @@ rtems_status_code rtems_object_get_class_information(
   info->minimum_id  = _Objects_Get_minimum_id( obj_info->maximum_id );
   info->maximum_id  = obj_info->maximum_id;
   info->auto_extend = obj_info->auto_extend;
-  info->maximum     = obj_info->maximum;
+  info->maximum     = _Objects_Get_maximum_index( obj_info );
 
   for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )
     if ( !obj_info->local_table[i] )
diff --git a/cpukit/score/src/objectactivecount.c b/cpukit/score/src/objectactivecount.c
index 376820158a..d29ce0736d 100644
--- a/cpukit/score/src/objectactivecount.c
+++ b/cpukit/score/src/objectactivecount.c
@@ -24,13 +24,14 @@ Objects_Maximum _Objects_Active_count(
   const Objects_Information *information
 )
 {
-  size_t inactive;
-  size_t maximum;
+  Objects_Maximum inactive;
+  Objects_Maximum maximum;
 
   _Assert( _Objects_Allocator_is_owner() );
 
-  inactive = _Chain_Node_count_unprotected( &information->Inactive );
-  maximum  = information->maximum;
+  inactive = (Objects_Maximum)
+    _Chain_Node_count_unprotected( &information->Inactive );
+  maximum  = _Objects_Get_maximum_index( information );
 
-  return (Objects_Maximum) ( maximum - inactive );
+  return maximum - inactive;
 }
diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c
index a8346ce937..57ce6737ec 100644
--- a/cpukit/score/src/objectextendinformation.c
+++ b/cpukit/score/src/objectextendinformation.c
@@ -49,7 +49,8 @@ void _Objects_Extend_information(
   uint32_t          index_base;
   uint32_t          index_end;
   uint32_t          index;
-  uint32_t          maximum;
+  Objects_Maximum   old_maximum;
+  uint32_t          new_maximum;
   size_t            object_block_size;
   Objects_Control  *new_object_block;
   bool              do_extend;
@@ -59,6 +60,8 @@ void _Objects_Extend_information(
       || !_System_state_Is_up( _System_state_Get() )
   );
 
+  old_maximum = _Objects_Get_maximum_index( information );
+
   /*
    *  Search for a free block of indexes. If we do NOT need to allocate or
    *  extend the block table, then we will change do_extend.
@@ -70,7 +73,7 @@ void _Objects_Extend_information(
   if ( information->object_blocks == NULL )
     block_count = 0;
   else {
-    block_count = information->maximum / information->objects_per_block;
+    block_count = old_maximum / information->objects_per_block;
 
     for ( ; block < block_count; block++ ) {
       if ( information->object_blocks[ block ] == NULL ) {
@@ -82,14 +85,14 @@ void _Objects_Extend_information(
   }
   index_end = index_base + information->objects_per_block;
 
-  maximum = (uint32_t) information->maximum + information->objects_per_block;
+  new_maximum = (uint32_t) old_maximum + information->objects_per_block;
 
   /*
    *  We need to limit the number of objects to the maximum number
    *  representable in the index portion of the object Id.  In the
    *  case of 16-bit Ids, this is only 256 object instances.
    */
-  if ( maximum > OBJECTS_ID_FINAL_INDEX ) {
+  if ( new_maximum > OBJECTS_ID_FINAL_INDEX ) {
     return;
   }
 
@@ -146,7 +149,7 @@ void _Objects_Extend_information(
      *  Allocate the tables and break it up.
      */
     object_blocks_size = block_count * sizeof( *object_blocks );
-    local_table_size =  maximum * sizeof( *local_table );
+    local_table_size =  new_maximum * sizeof( *local_table );
     table_size = object_blocks_size
       + local_table_size
       + block_count * sizeof( *inactive_per_block );
@@ -178,7 +181,7 @@ void _Objects_Extend_information(
      */
     block_count--;
 
-    if ( information->maximum > 0 ) {
+    if ( old_maximum > 0 ) {
       /*
        *  Copy each section of the table over. This has to be performed as
        *  separate parts as size of each block has changed.
@@ -196,7 +199,7 @@ void _Objects_Extend_information(
       memcpy(
         local_table,
         information->local_table,
-        information->maximum * sizeof( *local_table )
+        old_maximum * sizeof( *local_table )
       );
     }
 
@@ -215,12 +218,11 @@ void _Objects_Extend_information(
     information->object_blocks = object_blocks;
     information->inactive_per_block = inactive_per_block;
     information->local_table = local_table;
-    information->maximum = (Objects_Maximum) maximum;
     information->maximum_id = _Objects_Build_id(
       information->the_api,
       information->the_class,
       _Objects_Local_node,
-      information->maximum
+      new_maximum
     );
 
     _ISR_lock_ISR_enable( &lock_context );
diff --git a/cpukit/score/src/objectgetinfo.c b/cpukit/score/src/objectgetinfo.c
index 6ba561d368..c927d1c944 100644
--- a/cpukit/score/src/objectgetinfo.c
+++ b/cpukit/score/src/objectgetinfo.c
@@ -55,7 +55,7 @@ Objects_Information *_Objects_Get_information(
    *  pointer.
    */
   #if !defined(RTEMS_MULTIPROCESSING)
-    if ( info->maximum == 0 )
+    if ( _Objects_Get_maximum_index( info ) == 0 )
       return NULL;
   #endif
 
diff --git a/cpukit/score/src/objectgetnext.c b/cpukit/score/src/objectgetnext.c
index 054ed22fc1..156bee72a4 100644
--- a/cpukit/score/src/objectgetnext.c
+++ b/cpukit/score/src/objectgetnext.c
@@ -28,6 +28,7 @@ Objects_Control *_Objects_Get_next(
 {
     Objects_Control *the_object;
     Objects_Id       next_id;
+    Objects_Maximum  maximum;
 
     if ( !information )
       return NULL;
@@ -41,21 +42,20 @@ Objects_Control *_Objects_Get_next(
         next_id = id;
 
     _Objects_Allocator_lock();
+    maximum = _Objects_Get_maximum_index( information );
 
     do {
-        /* walked off end of list? */
-        if (_Objects_Get_index(next_id) > information->maximum)
-        {
-            _Objects_Allocator_unlock();
-            *next_id_p = OBJECTS_ID_FINAL;
-            return NULL;
-        }
+      /* walked off end of list? */
+      if (_Objects_Get_index( next_id ) > maximum) {
+        _Objects_Allocator_unlock();
+        *next_id_p = OBJECTS_ID_FINAL;
+        return NULL;
+      }
 
-        /* try to grab one */
-        the_object = _Objects_Get_no_protection( next_id, information );
-
-        next_id++;
+      /* try to grab one */
+      the_object = _Objects_Get_no_protection( next_id, information );
 
+      next_id++;
     } while ( the_object == NULL );
 
     *next_id_p = next_id;
diff --git a/cpukit/score/src/objectinitializeinformation.c b/cpukit/score/src/objectinitializeinformation.c
index 530e4e10ba..c1327aece8 100644
--- a/cpukit/score/src/objectinitializeinformation.c
+++ b/cpukit/score/src/objectinitializeinformation.c
@@ -39,20 +39,9 @@ void _Objects_Do_initialize_information(
 {
   Objects_Maximum maximum_per_allocation;
 
-  information->the_api            = the_api;
-  information->the_class          = the_class;
-  information->object_size        = object_size;
-  information->local_table        = 0;
-  information->inactive_per_block = 0;
-  information->object_blocks      = 0;
-  information->inactive           = 0;
-  information->local_table        = NULL;
-
-  /*
-   *  Set the maximum value to 0. It will be updated when objects are
-   *  added to the inactive set from _Objects_Extend_information()
-   */
-  information->maximum = 0;
+  information->the_api     = the_api;
+  information->the_class   = the_class;
+  information->object_size = object_size;
 
   /*
    *  Register this Object Class in the Object Information Table.
diff --git a/cpukit/score/src/objectnametoid.c b/cpukit/score/src/objectnametoid.c
index c3b014e3e1..6a89b874e7 100644
--- a/cpukit/score/src/objectnametoid.c
+++ b/cpukit/score/src/objectnametoid.c
@@ -29,6 +29,7 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
 {
   bool                       search_local_node;
   Objects_Control           *the_object;
+  Objects_Maximum            maximum;
   Objects_Maximum            index;
 #if defined(RTEMS_MULTIPROCESSING)
   Objects_Name               name_for_mp;
@@ -42,9 +43,10 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
   if ( name == 0 )
     return OBJECTS_INVALID_NAME;
 
+  maximum = _Objects_Get_maximum_index( information );
   search_local_node = false;
 
-  if ( information->maximum != 0 &&
+  if ( maximum > 0 &&
       (node == OBJECTS_SEARCH_ALL_NODES ||
        node == OBJECTS_SEARCH_LOCAL_NODE ||
        _Objects_Is_local_node( node )
@@ -52,7 +54,7 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
    search_local_node = true;
 
   if ( search_local_node ) {
-    for ( index = 0; index < information->maximum; ++index ) {
+    for ( index = 0; index < maximum; ++index ) {
       the_object = information->local_table[ index ];
       if ( !the_object )
         continue;
diff --git a/cpukit/score/src/objectnametoidstring.c b/cpukit/score/src/objectnametoidstring.c
index a015d5fc25..d357339ea7 100644
--- a/cpukit/score/src/objectnametoidstring.c
+++ b/cpukit/score/src/objectnametoidstring.c
@@ -29,9 +29,10 @@ Objects_Control *_Objects_Get_by_name(
   Objects_Get_by_name_error *error
 )
 {
-  size_t   name_length;
-  size_t   max_name_length;
-  uint32_t index;
+  size_t          name_length;
+  size_t          max_name_length;
+  Objects_Maximum maximum;
+  Objects_Maximum index;
 
   _Assert( _Objects_Has_string_name( information ) );
   _Assert( _Objects_Allocator_is_owner() );
@@ -52,7 +53,9 @@ Objects_Control *_Objects_Get_by_name(
     *name_length_p = name_length;
   }
 
-  for ( index = 0; index < information->maximum; ++index ) {
+  maximum = _Objects_Get_maximum_index( information );
+
+  for ( index = 0; index < maximum; ++index ) {
     Objects_Control *the_object;
 
     the_object = information->local_table[ index ];
diff --git a/cpukit/score/src/objectshrinkinformation.c b/cpukit/score/src/objectshrinkinformation.c
index 3b1841a16b..5a53be9979 100644
--- a/cpukit/score/src/objectshrinkinformation.c
+++ b/cpukit/score/src/objectshrinkinformation.c
@@ -39,7 +39,7 @@ void _Objects_Shrink_information(
    */
 
   objects_per_block = information->objects_per_block;
-  block_count = information->maximum / objects_per_block;
+  block_count = _Objects_Get_maximum_index( information ) / objects_per_block;
   index_base = 0;
 
   for ( block = 0; block < block_count; block++ ) {
diff --git a/cpukit/score/src/threaditerate.c b/cpukit/score/src/threaditerate.c
index 9fa9b89166..8d1614ab9b 100644
--- a/cpukit/score/src/threaditerate.c
+++ b/cpukit/score/src/threaditerate.c
@@ -27,7 +27,8 @@ void _Thread_Iterate(
 
   for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; ++api_index ) {
     const Objects_Information *information;
-    Objects_Maximum            i;
+    Objects_Maximum            maximum;
+    Objects_Maximum            index;
 
     if ( _Objects_Information_table[ api_index ] == NULL ) {
       continue;
@@ -39,10 +40,12 @@ void _Thread_Iterate(
       continue;
     }
 
-    for ( i = 0 ; i < information->maximum ; ++i ) {
+    maximum = _Objects_Get_maximum_index( information );
+
+    for ( index = 0 ; index < maximum ; ++index ) {
       Thread_Control *the_thread;
 
-      the_thread = (Thread_Control *) information->local_table[ i ];
+      the_thread = (Thread_Control *) information->local_table[ index ];
 
       if ( the_thread != NULL ) {
         bool done;
diff --git a/testsuites/sptests/spsysinit01/init.c b/testsuites/sptests/spsysinit01/init.c
index 00d07fb18a..6d0c431a85 100644
--- a/testsuites/sptests/spsysinit01/init.c
+++ b/testsuites/sptests/spsysinit01/init.c
@@ -248,49 +248,53 @@ LAST(RTEMS_SYSINIT_INITIAL_EXTENSIONS)
 
 FIRST(RTEMS_SYSINIT_DATA_STRUCTURES)
 {
-  assert(_Thread_Internal_information.Objects.maximum == 0);
+  assert(
+    _Objects_Get_maximum_index(&_Thread_Internal_information.Objects) == 0
+  );
   next_step(DATA_STRUCTURES_PRE);
 }
 
 LAST(RTEMS_SYSINIT_DATA_STRUCTURES)
 {
-  assert(_Thread_Internal_information.Objects.maximum != 0);
+  assert(
+    _Objects_Get_maximum_index(&_Thread_Internal_information.Objects) != 0
+  );
   next_step(DATA_STRUCTURES_POST);
 }
 
 FIRST(RTEMS_SYSINIT_USER_EXTENSIONS)
 {
-  assert(_Extension_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Extension_Information) == 0);
   next_step(USER_EXTENSIONS_PRE);
 }
 
 LAST(RTEMS_SYSINIT_USER_EXTENSIONS)
 {
-  assert(_Extension_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Extension_Information) != 0);
   next_step(USER_EXTENSIONS_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_TASKS)
 {
-  assert(_RTEMS_tasks_Information.Objects.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_RTEMS_tasks_Information.Objects) == 0);
   next_step(CLASSIC_TASKS_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_TASKS)
 {
-  assert(_RTEMS_tasks_Information.Objects.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_RTEMS_tasks_Information.Objects) != 0);
   next_step(CLASSIC_TASKS_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_TIMER)
 {
-  assert(_Timer_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Timer_Information) == 0);
   next_step(CLASSIC_TIMER_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_TIMER)
 {
-  assert(_Timer_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Timer_Information) != 0);
   next_step(CLASSIC_TIMER_POST);
 }
 
@@ -318,85 +322,85 @@ LAST(RTEMS_SYSINIT_CLASSIC_EVENT)
 
 FIRST(RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE)
 {
-  assert(_Message_queue_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Message_queue_Information) == 0);
   next_step(CLASSIC_MESSAGE_QUEUE_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE)
 {
-  assert(_Message_queue_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Message_queue_Information) != 0);
   next_step(CLASSIC_MESSAGE_QUEUE_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_SEMAPHORE)
 {
-  assert(_Semaphore_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Semaphore_Information) == 0);
   next_step(CLASSIC_SEMAPHORE_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_SEMAPHORE)
 {
-  assert(_Semaphore_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Semaphore_Information) != 0);
   next_step(CLASSIC_SEMAPHORE_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_PARTITION)
 {
-  assert(_Partition_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Partition_Information) == 0);
   next_step(CLASSIC_PARTITION_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_PARTITION)
 {
-  assert(_Partition_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Partition_Information) != 0);
   next_step(CLASSIC_PARTITION_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_REGION)
 {
-  assert(_Region_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Region_Information) == 0);
   next_step(CLASSIC_REGION_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_REGION)
 {
-  assert(_Region_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Region_Information) != 0);
   next_step(CLASSIC_REGION_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_DUAL_PORTED_MEMORY)
 {
-  assert(_Dual_ported_memory_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Dual_ported_memory_Information) == 0);
   next_step(CLASSIC_DUAL_PORTED_MEMORY_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_DUAL_PORTED_MEMORY)
 {
-  assert(_Dual_ported_memory_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Dual_ported_memory_Information) != 0);
   next_step(CLASSIC_DUAL_PORTED_MEMORY_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_RATE_MONOTONIC)
 {
-  assert(_Rate_monotonic_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Rate_monotonic_Information) == 0);
   next_step(CLASSIC_RATE_MONOTONIC_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_RATE_MONOTONIC)
 {
-  assert(_Rate_monotonic_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Rate_monotonic_Information) != 0);
   next_step(CLASSIC_RATE_MONOTONIC_POST);
 }
 
 FIRST(RTEMS_SYSINIT_CLASSIC_BARRIER)
 {
-  assert(_Barrier_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_Barrier_Information) == 0);
   next_step(CLASSIC_BARRIER_PRE);
 }
 
 LAST(RTEMS_SYSINIT_CLASSIC_BARRIER)
 {
-  assert(_Barrier_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_Barrier_Information) != 0);
   next_step(CLASSIC_BARRIER_POST);
 }
 
@@ -428,63 +432,63 @@ LAST(RTEMS_SYSINIT_POSIX_SIGNALS)
 
 FIRST(RTEMS_SYSINIT_POSIX_THREADS)
 {
-  assert(_POSIX_Threads_Information.Objects.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Threads_Information.Objects) == 0);
   next_step(POSIX_THREADS_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_THREADS)
 {
-  assert(_POSIX_Threads_Information.Objects.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Threads_Information.Objects) != 0);
   next_step(POSIX_THREADS_POST);
 }
 
 FIRST(RTEMS_SYSINIT_POSIX_MESSAGE_QUEUE)
 {
-  assert(_POSIX_Message_queue_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Message_queue_Information) == 0);
   next_step(POSIX_MESSAGE_QUEUE_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_MESSAGE_QUEUE)
 {
-  assert(_POSIX_Message_queue_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Message_queue_Information) != 0);
   next_step(POSIX_MESSAGE_QUEUE_POST);
 }
 
 FIRST(RTEMS_SYSINIT_POSIX_SEMAPHORE)
 {
-  assert(_POSIX_Semaphore_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Semaphore_Information) == 0);
   next_step(POSIX_SEMAPHORE_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_SEMAPHORE)
 {
-  assert(_POSIX_Semaphore_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Semaphore_Information) != 0);
   next_step(POSIX_SEMAPHORE_POST);
 }
 
 #ifdef RTEMS_POSIX_API
 FIRST(RTEMS_SYSINIT_POSIX_TIMER)
 {
-  assert(_POSIX_Timer_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Timer_Information) == 0);
   next_step(POSIX_TIMER_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_TIMER)
 {
-  assert(_POSIX_Timer_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Timer_Information) != 0);
   next_step(POSIX_TIMER_POST);
 }
 #endif /* RTEMS_POSIX_API */
 
 FIRST(RTEMS_SYSINIT_POSIX_SHM)
 {
-  assert(_POSIX_Shm_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Shm_Information) == 0);
   next_step(POSIX_SHM_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_SHM)
 {
-  assert(_POSIX_Shm_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Shm_Information) != 0);
   next_step(POSIX_SHM_POST);
 }
 
@@ -508,13 +512,13 @@ LAST(RTEMS_SYSINIT_POSIX_CLEANUP)
 
 FIRST(RTEMS_SYSINIT_POSIX_KEYS)
 {
-  assert(_POSIX_Keys_Information.maximum == 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Keys_Information) == 0);
   next_step(POSIX_KEYS_PRE);
 }
 
 LAST(RTEMS_SYSINIT_POSIX_KEYS)
 {
-  assert(_POSIX_Keys_Information.maximum != 0);
+  assert(_Objects_Get_maximum_index(&_POSIX_Keys_Information) != 0);
   next_step(POSIX_KEYS_POST);
 }
 
-- 
2.16.4




More information about the devel mailing list