summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/thread.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-06 11:54:19 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-06 11:54:19 +0200
commita6502a58e64eb47b4c987884fdcb6af79fae792c (patch)
treebebd6e828aa2a360cb48db15815dbbc3d2ff45d2 /cpukit/score/src/thread.c
parentscore: Delete unused Thread_queue_Timeout_callout (diff)
downloadrtems-a6502a58e64eb47b4c987884fdcb6af79fae792c.tar.bz2
score: Fix Thread_Control and Thread_Proxy_control
Fix layout of the common block of Thread_Control and Thread_Proxy_control. Ensure that the offsets match.
Diffstat (limited to 'cpukit/score/src/thread.c')
-rw-r--r--cpukit/score/src/thread.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c
index 3cf061fdb9..88b3272d0a 100644
--- a/cpukit/score/src/thread.c
+++ b/cpukit/score/src/thread.c
@@ -21,6 +21,25 @@
#include <rtems/score/threadimpl.h>
#include <rtems/score/interr.h>
+#define THREAD_OFFSET_ASSERT( field ) \
+ RTEMS_STATIC_ASSERT( \
+ offsetof( Thread_Control, field ) == offsetof( Thread_Proxy_control, field ), \
+ field \
+ )
+
+THREAD_OFFSET_ASSERT( Object );
+THREAD_OFFSET_ASSERT( RBNode );
+THREAD_OFFSET_ASSERT( current_state );
+THREAD_OFFSET_ASSERT( current_priority );
+THREAD_OFFSET_ASSERT( real_priority );
+THREAD_OFFSET_ASSERT( Priority );
+THREAD_OFFSET_ASSERT( resource_count );
+THREAD_OFFSET_ASSERT( Wait );
+THREAD_OFFSET_ASSERT( Timer );
+#if defined(RTEMS_MULTIPROCESSING)
+THREAD_OFFSET_ASSERT( receive_packet );
+#endif
+
void _Thread_Handler_initialization(void)
{
rtems_stack_allocate_init_hook stack_allocate_init_hook =