diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-08-30 08:09:46 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-08-30 08:57:28 +0200 |
commit | 11f196d646958517c3fb1306b50323e4c3f59211 (patch) | |
tree | 5741536c5f5de5980e333b87132a88e9903ff46f | |
parent | record: Introduce _Record_Drain() (diff) | |
download | rtems-11f196d646958517c3fb1306b50323e4c3f59211.tar.bz2 |
record: Simplify configuration
Update #3665.
-rw-r--r-- | cpukit/include/rtems/confdefs.h | 3 | ||||
-rw-r--r-- | cpukit/include/rtems/record.h | 4 | ||||
-rw-r--r-- | 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 085df2444c..5eb5425283 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 b667b46fa3..c76dd07ff0 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 afb887cd2f..88680a0c83 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 ); } } |