[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