[rtems commit] record: Simplify configuration

Sebastian Huber sebh at rtems.org
Fri Aug 30 07:01:14 UTC 2019


Module:    rtems
Branch:    master
Commit:    11f196d646958517c3fb1306b50323e4c3f59211
Changeset: http://git.rtems.org/rtems/commit/?id=11f196d646958517c3fb1306b50323e4c3f59211

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug 30 08:09:46 2019 +0200

record: Simplify configuration

Update #3665.

---

 cpukit/include/rtems/confdefs.h         |  3 +--
 cpukit/include/rtems/record.h           |  4 ++--
 cpukit/libtrace/record/record-sysinit.c | 12 ++++++++----
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 085df24..5eb5425 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2943,7 +2943,7 @@ struct _reent *__getreent(void)
     #endif
 
     typedef struct {
-      RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES ) Record_Control Control;
+      Record_Control    Control;
       rtems_record_item Items[ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS ];
     } Record_Configured_control;
 
@@ -2951,7 +2951,6 @@ struct _reent *__getreent(void)
 
     const Record_Configuration _Record_Configuration = {
       CONFIGURE_RECORD_PER_PROCESSOR_ITEMS,
-      sizeof( Record_Configured_control ),
       &_Record_Controls[ 0 ].Control
     };
 
diff --git a/cpukit/include/rtems/record.h b/cpukit/include/rtems/record.h
index b667b46..c76dd07 100644
--- a/cpukit/include/rtems/record.h
+++ b/cpukit/include/rtems/record.h
@@ -46,12 +46,12 @@ typedef struct Record_Control {
   unsigned int      mask;
   Watchdog_Control  Watchdog;
   rtems_record_item Header[ 3 ];
-  rtems_record_item Items[ RTEMS_ZERO_LENGTH_ARRAY ];
+  RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES )
+    rtems_record_item Items[ RTEMS_ZERO_LENGTH_ARRAY ];
 } Record_Control;
 
 typedef struct {
   unsigned int    item_count;
-  size_t          control_size;
   Record_Control *controls;
 } Record_Configuration;
 
diff --git a/cpukit/libtrace/record/record-sysinit.c b/cpukit/libtrace/record/record-sysinit.c
index afb887c..88680a0 100644
--- a/cpukit/libtrace/record/record-sysinit.c
+++ b/cpukit/libtrace/record/record-sysinit.c
@@ -40,20 +40,24 @@ static Watchdog_Interval _Record_Tick_interval;
 void _Record_Initialize( void )
 {
   Record_Control *control;
+  size_t          control_size;
   uint32_t        cpu_max;
   uint32_t        cpu_index;
+  unsigned int    item_count;
 
-  control = _Record_Configuration.controls;
   cpu_max = rtems_configuration_get_maximum_processors();
+  item_count = _Record_Configuration.item_count;
+  control = _Record_Configuration.controls;
+  control_size = sizeof( *control );
+  control_size += sizeof( control->Items[ 0 ] ) * item_count;
 
   for ( cpu_index = 0; cpu_index < cpu_max; ++cpu_index ) {
     Per_CPU_Control *cpu;
 
     cpu = _Per_CPU_Get_by_index( cpu_index );
-    control->mask = _Record_Configuration.item_count - 1U;
+    control->mask = item_count - 1U;
     cpu->record = control;
-    control = (Record_Control *)
-      ( (char *) control + _Record_Configuration.control_size );
+    control = (Record_Control *) ( (char *) control + control_size );
   }
 }
 



More information about the vc mailing list