summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/confdefs.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-08-27 15:39:43 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-08-28 08:58:14 +0200
commita2684c2b8d4cd1336052cc541cce31cc342bae2e (patch)
tree0abeef7d522a53b558f7c453bfef4bbdacfc8eef /cpukit/include/rtems/confdefs.h
parentrecord: Add data size to client (diff)
downloadrtems-a2684c2b8d4cd1336052cc541cce31cc342bae2e.tar.bz2
record: Use BSS section instead of per-CPU data
The .rtemsrwset section is used for the per-CPU data. This section has loadable content. Place the ring buffers in the BSS section to avoid large executable image sizes. Not using the per-CPU data makes it possible to initialize the record support earlier. Update #3665.
Diffstat (limited to 'cpukit/include/rtems/confdefs.h')
-rw-r--r--cpukit/include/rtems/confdefs.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 45a75f0c6f..085df2444c 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2942,14 +2942,18 @@ struct _reent *__getreent(void)
#error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be at least 16"
#endif
- const unsigned int _Record_Item_count = CONFIGURE_RECORD_PER_PROCESSOR_ITEMS;
-
- struct Record_Configured_control {
- Record_Control Control;
+ typedef struct {
+ RTEMS_ALIGNED( CPU_CACHE_LINE_BYTES ) Record_Control Control;
rtems_record_item Items[ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS ];
- };
+ } Record_Configured_control;
- PER_CPU_DATA_ITEM( Record_Configured_control, _Record_Per_CPU );
+ static Record_Configured_control _Record_Controls[ _CONFIGURE_MAXIMUM_PROCESSORS ];
+
+ const Record_Configuration _Record_Configuration = {
+ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS,
+ sizeof( Record_Configured_control ),
+ &_Record_Controls[ 0 ].Control
+ };
RTEMS_SYSINIT_ITEM(
_Record_Initialize,