diff --git a/c/src/tests/tmtests/tm27/task1.c b/c/src/tests/tmtests/tm27/task1.c index 51e795d817..c18ae2ab9b 100644 --- a/c/src/tests/tmtests/tm27/task1.c +++ b/c/src/tests/tmtests/tm27/task1.c @@ -86,37 +86,11 @@ rtems_task Task_1( rtems_task_argument argument ) { - _Thread_Dispatch_disable_level = 1; - - Interrupt_nest = 1; - Install_tm27_vector( Isr_handler ); - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (nested interrupt)", - Interrupt_enter_nested_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (nested interrupt)", - Interrupt_return_nested_time, - 1, - 0, - 0 - ); + /* + * No preempt .. no nesting + */ Interrupt_nest = 0; @@ -148,6 +122,44 @@ rtems_task Task_1( 0 ); + /* + * No preempt .. nested + */ + + _Thread_Dispatch_disable_level = 1; + + Interrupt_nest = 1; + + Interrupt_occurred = 0; + Timer_initialize(); + Cause_tm27_intr(); + /* goes to Isr_handler */ + +#if (MUST_WAIT_FOR_INTERRUPT == 1) + while ( Interrupt_occurred == 0 ); +#endif + Interrupt_return_time = Read_timer(); + + put_time( + "INTERRUPT_ENTER (nested interrupt)", + Interrupt_enter_nested_time, + 1, + 0, + 0 + ); + + put_time( + "INTERRUPT_RETURN (nested interrupt)", + Interrupt_return_nested_time, + 1, + 0, + 0 + ); + + /* + * Does a preempt .. not nested + */ + _Thread_Dispatch_disable_level = 0; _Thread_Heir = (rtems_tcb *) _Thread_Ready_chain[254].last; diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c index 51e795d817..c18ae2ab9b 100644 --- a/testsuites/tmtests/tm27/task1.c +++ b/testsuites/tmtests/tm27/task1.c @@ -86,37 +86,11 @@ rtems_task Task_1( rtems_task_argument argument ) { - _Thread_Dispatch_disable_level = 1; - - Interrupt_nest = 1; - Install_tm27_vector( Isr_handler ); - Interrupt_occurred = 0; - Timer_initialize(); - Cause_tm27_intr(); - /* goes to Isr_handler */ - -#if (MUST_WAIT_FOR_INTERRUPT == 1) - while ( Interrupt_occurred == 0 ); -#endif - Interrupt_return_time = Read_timer(); - - put_time( - "INTERRUPT_ENTER (nested interrupt)", - Interrupt_enter_nested_time, - 1, - 0, - 0 - ); - - put_time( - "INTERRUPT_RETURN (nested interrupt)", - Interrupt_return_nested_time, - 1, - 0, - 0 - ); + /* + * No preempt .. no nesting + */ Interrupt_nest = 0; @@ -148,6 +122,44 @@ rtems_task Task_1( 0 ); + /* + * No preempt .. nested + */ + + _Thread_Dispatch_disable_level = 1; + + Interrupt_nest = 1; + + Interrupt_occurred = 0; + Timer_initialize(); + Cause_tm27_intr(); + /* goes to Isr_handler */ + +#if (MUST_WAIT_FOR_INTERRUPT == 1) + while ( Interrupt_occurred == 0 ); +#endif + Interrupt_return_time = Read_timer(); + + put_time( + "INTERRUPT_ENTER (nested interrupt)", + Interrupt_enter_nested_time, + 1, + 0, + 0 + ); + + put_time( + "INTERRUPT_RETURN (nested interrupt)", + Interrupt_return_nested_time, + 1, + 0, + 0 + ); + + /* + * Does a preempt .. not nested + */ + _Thread_Dispatch_disable_level = 0; _Thread_Heir = (rtems_tcb *) _Thread_Ready_chain[254].last;