summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/tests/tmtests/tm26/task1.c73
-rw-r--r--testsuites/tmtests/tm26/task1.c73
2 files changed, 142 insertions, 4 deletions
diff --git a/c/src/tests/tmtests/tm26/task1.c b/c/src/tests/tmtests/tm26/task1.c
index c2a5610a23..b3962b07e8 100644
--- a/c/src/tests/tmtests/tm26/task1.c
+++ b/c/src/tests/tmtests/tm26/task1.c
@@ -8,7 +8,7 @@
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
- * $Id$
+ * task1.c,v 1.3 1995/06/05 23:55:00 joel Exp
*/
#include <rtems.h>
@@ -32,6 +32,8 @@ Objects_Locations location; /* uses internal RTEMS type */
Thread_Control *Middle_tcb; /* uses internal RTEMS type */
+Thread_Control *Low_tcb; /* uses internal RTEMS type */
+
rtems_task High_task(
rtems_task_argument argument
);
@@ -166,6 +168,44 @@ rtems_task High_task(
rtems_task_argument argument
)
{
+ rtems_interrupt_level level;
+
+ Timer_initialize();
+ rtems_interrupt_disable( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT DISABLE",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ Timer_initialize();
+ rtems_interrupt_flash( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT FLASH",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ Timer_initialize();
+ rtems_interrupt_enable( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT ENABLE",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
Timer_initialize();
_Thread_Disable_dispatch();
end_time = Read_timer();
@@ -178,7 +218,6 @@ rtems_task High_task(
0
);
-
Timer_initialize();
_Thread_Enable_dispatch();
end_time = Read_timer();
@@ -238,6 +277,9 @@ rtems_task Middle_task(
Timer_initialize();
_Context_Switch( &Middle_tcb->Registers, &_Thread_Executing->Registers );
+
+ Timer_initialize();
+ _Context_Switch(&Middle_tcb->Registers, &Low_tcb->Registers);
}
rtems_task Low_task(
@@ -258,6 +300,33 @@ rtems_task Low_task(
executing = _Thread_Executing;
+ Low_tcb = executing;
+
+ Timer_initialize();
+ _Context_Switch( &executing->Registers, &executing->Registers );
+
+ end_time = Read_timer();
+
+ put_time(
+ "CONTEXT_SWITCH (SELF)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ _Context_Switch(&executing->Registers, &Middle_tcb->Registers);
+
+ end_time = Read_timer();
+
+ put_time(
+ "CONTEXT_SWITCH (Initialised)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
_Thread_Executing =
(Thread_Control *) _Thread_Ready_chain[201].first;
diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c
index c2a5610a23..b3962b07e8 100644
--- a/testsuites/tmtests/tm26/task1.c
+++ b/testsuites/tmtests/tm26/task1.c
@@ -8,7 +8,7 @@
* to the copyright license under the clause at DFARS 252.227-7013. This
* notice must appear in all copies of this file and its derivatives.
*
- * $Id$
+ * task1.c,v 1.3 1995/06/05 23:55:00 joel Exp
*/
#include <rtems.h>
@@ -32,6 +32,8 @@ Objects_Locations location; /* uses internal RTEMS type */
Thread_Control *Middle_tcb; /* uses internal RTEMS type */
+Thread_Control *Low_tcb; /* uses internal RTEMS type */
+
rtems_task High_task(
rtems_task_argument argument
);
@@ -166,6 +168,44 @@ rtems_task High_task(
rtems_task_argument argument
)
{
+ rtems_interrupt_level level;
+
+ Timer_initialize();
+ rtems_interrupt_disable( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT DISABLE",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ Timer_initialize();
+ rtems_interrupt_flash( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT FLASH",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ Timer_initialize();
+ rtems_interrupt_enable( level );
+ end_time = Read_timer();
+
+ put_time(
+ "INTERRUPT ENABLE",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
Timer_initialize();
_Thread_Disable_dispatch();
end_time = Read_timer();
@@ -178,7 +218,6 @@ rtems_task High_task(
0
);
-
Timer_initialize();
_Thread_Enable_dispatch();
end_time = Read_timer();
@@ -238,6 +277,9 @@ rtems_task Middle_task(
Timer_initialize();
_Context_Switch( &Middle_tcb->Registers, &_Thread_Executing->Registers );
+
+ Timer_initialize();
+ _Context_Switch(&Middle_tcb->Registers, &Low_tcb->Registers);
}
rtems_task Low_task(
@@ -258,6 +300,33 @@ rtems_task Low_task(
executing = _Thread_Executing;
+ Low_tcb = executing;
+
+ Timer_initialize();
+ _Context_Switch( &executing->Registers, &executing->Registers );
+
+ end_time = Read_timer();
+
+ put_time(
+ "CONTEXT_SWITCH (SELF)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
+ _Context_Switch(&executing->Registers, &Middle_tcb->Registers);
+
+ end_time = Read_timer();
+
+ put_time(
+ "CONTEXT_SWITCH (Initialised)",
+ end_time,
+ 1,
+ 0,
+ 0
+ );
+
_Thread_Executing =
(Thread_Control *) _Thread_Ready_chain[201].first;