diff options
Diffstat (limited to 'testsuites/sptests')
-rw-r--r-- | testsuites/sptests/sp08/init.c | 23 | ||||
-rw-r--r-- | testsuites/sptests/sp37/init.c | 10 |
2 files changed, 29 insertions, 4 deletions
diff --git a/testsuites/sptests/sp08/init.c b/testsuites/sptests/sp08/init.c index 98a7fccdcf..2ed585ddd7 100644 --- a/testsuites/sptests/sp08/init.c +++ b/testsuites/sptests/sp08/init.c @@ -175,7 +175,7 @@ rtems_task Init( /* END OF RTEMS_PREEMPT */ /* BEGINNING OF RTEMS_INTERRUPT_LEVEL */ -#if !defined(RTEMS_SMP) +#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE status = rtems_task_mode( RTEMS_INTERRUPT_LEVEL(3), RTEMS_INTERRUPT_MASK, @@ -197,13 +197,25 @@ rtems_task Init( "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ", previous_mode ); +#else + status = rtems_task_mode( + RTEMS_INTERRUPT_LEVEL( 1 ), + RTEMS_INTERRUPT_MASK, + &previous_mode + ); + fatal_directive_status( status, RTEMS_NOT_IMPLEMENTED, "rtems_task_mode" ); #endif /* END OF RTEMS_INTERRUPT_LEVEL */ /* BEGINNING OF COMBINATIONS */ status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | +#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE + RTEMS_INTERRUPT_LEVEL(0) | +#else + RTEMS_INTERRUPT_LEVEL(3) | +#endif + RTEMS_NO_ASR | RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, @@ -216,7 +228,12 @@ rtems_task Init( ); status = rtems_task_mode( - RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR | +#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE + RTEMS_INTERRUPT_LEVEL(0) | +#else + RTEMS_INTERRUPT_LEVEL(3) | +#endif + RTEMS_NO_ASR | RTEMS_TIMESLICE | RTEMS_NO_PREEMPT, RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK | RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK, diff --git a/testsuites/sptests/sp37/init.c b/testsuites/sptests/sp37/init.c index dc4867c55c..b050d7f7d1 100644 --- a/testsuites/sptests/sp37/init.c +++ b/testsuites/sptests/sp37/init.c @@ -76,11 +76,19 @@ static void test_isr_level_for_new_threads( ISR_Level last_proper_level ) }; for ( current = 0 ; current <= mask ; ++current ) { - rtems_mode initial_modes = RTEMS_INTERRUPT_LEVEL(current); + rtems_mode initial_modes; rtems_id id; rtems_status_code sc; rtems_event_set events; + initial_modes = RTEMS_INTERRUPT_LEVEL(current); + +#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE + if ( initial_modes != 0 ) { + break; + } +#endif + ctx.actual_level = 0xffffffff; sc = rtems_task_create( |