diff options
Diffstat (limited to 'cpukit/score/cpu/arm/cpu.c')
-rw-r--r-- | cpukit/score/cpu/arm/cpu.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/cpukit/score/cpu/arm/cpu.c b/cpukit/score/cpu/arm/cpu.c index 24a9249300..91109e4e1d 100644 --- a/cpukit/score/cpu/arm/cpu.c +++ b/cpukit/score/cpu/arm/cpu.c @@ -50,6 +50,14 @@ ); #endif +#ifdef RTEMS_SMP + RTEMS_STATIC_ASSERT( + offsetof( Context_Control, is_executing ) + == ARM_CONTEXT_CONTROL_IS_EXECUTING_OFFSET, + ARM_CONTEXT_CONTROL_IS_EXECUTING_OFFSET + ); +#endif + RTEMS_STATIC_ASSERT( sizeof( CPU_Exception_frame ) == ARM_EXCEPTION_FRAME_SIZE, ARM_EXCEPTION_FRAME_SIZE @@ -93,6 +101,10 @@ void _CPU_Context_Initialize( the_context->thread_id = (uint32_t) tls_area; #endif +#ifdef RTEMS_SMP + the_context->is_executing = false; +#endif + if ( tls_area != NULL ) { _TLS_TCB_at_area_begin_initialize( tls_area ); } |