summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-11-23 07:47:57 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-11-23 07:52:42 +0100
commita550b3f35a32e6c74c78aeda1154b1d901574168 (patch)
treeef116e068b0505223b527367ddc8e8bfc8f26ccb
parentbsp/lpc23xx_tli800: Disable tar01 test (diff)
downloadrtems-a550b3f35a32e6c74c78aeda1154b1d901574168.tar.bz2
score: Force Per_CPU_Control::executing alignment
This fixes the CPU ports with relaxed alignment restrictions, e.g. type alignment is less than the type size. Close #2822. Close #2823.
-rw-r--r--cpukit/score/include/rtems/score/percpu.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/percpu.h b/cpukit/score/include/rtems/score/percpu.h
index 78196e8a2d..3b63c7c1e1 100644
--- a/cpukit/score/include/rtems/score/percpu.h
+++ b/cpukit/score/include/rtems/score/percpu.h
@@ -334,6 +334,13 @@ typedef struct Per_CPU_Control {
*/
volatile bool dispatch_necessary;
+ /*
+ * Ensure that the executing member is at least 4-byte aligned, see
+ * PER_CPU_OFFSET_EXECUTING. This is necessary on CPU ports with relaxed
+ * alignment restrictions, e.g. type alignment is less than the type size.
+ */
+ bool reserved_for_executing_alignment[ 3 ];
+
/**
* @brief This is the thread executing on this processor.
*