summaryrefslogtreecommitdiffstats
path: root/c/src/ada-tests
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-08-26 17:24:44 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-08-26 17:24:44 +0000
commitb2b7cfc91e13ee70b7ad20cb7318057facbf7320 (patch)
treeb2c447e421d4258fcb89c8f445069601a0fdd084 /c/src/ada-tests
parent2002-08-26 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-b2b7cfc91e13ee70b7ad20cb7318057facbf7320.tar.bz2
2002-08-26 Joel Sherrill <joel@OARcorp.com>
* tm27 and tm27 are irrelevant as Ada binding tests. * tmtests/tm26/Makefile.am, tmtests/tm26/README, tmtests/tm26/tm26.adb, tmtests/tm26/tmtest.adb, tmtests/tm26/tmtest.adp, tmtests/tm26/tmtest.ads, tmtests/tm27/Makefile.am, tmtests/tm27/README, tmtests/tm27/tm27.adb, tmtests/tm27/tmtest.adb, tmtests/tm27/tmtest.ads: Removed. * configure.ac, tmtests/Makefile.am: Modified to reflect above.
Diffstat (limited to 'c/src/ada-tests')
-rw-r--r--c/src/ada-tests/ChangeLog6
-rw-r--r--c/src/ada-tests/configure.ac2
-rw-r--r--c/src/ada-tests/tmtests/Makefile.am2
-rw-r--r--c/src/ada-tests/tmtests/tm26/Makefile.am17
-rw-r--r--c/src/ada-tests/tmtests/tm26/README6
-rw-r--r--c/src/ada-tests/tmtests/tm26/tm26.adb57
-rw-r--r--c/src/ada-tests/tmtests/tm26/tmtest.adb650
-rw-r--r--c/src/ada-tests/tmtests/tm26/tmtest.adp650
-rw-r--r--c/src/ada-tests/tmtests/tm26/tmtest.ads189
-rw-r--r--c/src/ada-tests/tmtests/tm27/Makefile.am17
-rw-r--r--c/src/ada-tests/tmtests/tm27/README8
-rw-r--r--c/src/ada-tests/tmtests/tm27/tm27.adb57
-rw-r--r--c/src/ada-tests/tmtests/tm27/tmtest.adb268
-rw-r--r--c/src/ada-tests/tmtests/tm27/tmtest.ads131
14 files changed, 6 insertions, 2054 deletions
diff --git a/c/src/ada-tests/ChangeLog b/c/src/ada-tests/ChangeLog
index a5a19b5185..90181e3ef0 100644
--- a/c/src/ada-tests/ChangeLog
+++ b/c/src/ada-tests/ChangeLog
@@ -6,6 +6,12 @@
2002-08-26 Joel Sherrill <joel@OARcorp.com>
+ * sptests/sp19/sptest.adb: Modified to follow pattern of SP01
+ even though this test is not supported.
+ * sptests/sp19/sp19.adb: New file.
+
+2002-08-26 Joel Sherrill <joel@OARcorp.com>
+
* mptests/mp01/mptest.ads, mptests/mp02/mptest.ads,
mptests/mp03/mptest.ads, mptests/mp04/mptest.ads,
mptests/mp05/mptest.ads, mptests/mp06/mptest.ads,
diff --git a/c/src/ada-tests/configure.ac b/c/src/ada-tests/configure.ac
index cf085089f8..e0a27d5b27 100644
--- a/c/src/ada-tests/configure.ac
+++ b/c/src/ada-tests/configure.ac
@@ -100,8 +100,6 @@ tmtests/tm22/Makefile
tmtests/tm23/Makefile
tmtests/tm24/Makefile
tmtests/tm25/Makefile
-tmtests/tm26/Makefile
-tmtests/tm27/Makefile
tmtests/tm28/Makefile
tmtests/tm29/Makefile
tmtests/tmck/Makefile
diff --git a/c/src/ada-tests/tmtests/Makefile.am b/c/src/ada-tests/tmtests/Makefile.am
index 8fd8e96772..275c6c1efb 100644
--- a/c/src/ada-tests/tmtests/Makefile.am
+++ b/c/src/ada-tests/tmtests/Makefile.am
@@ -26,8 +26,6 @@ SUBDIRS += tm22
SUBDIRS += tm23
SUBDIRS += tm24
SUBDIRS += tm25
-SUBDIRS += tm26
-SUBDIRS += tm27
SUBDIRS += tm28
SUBDIRS += tm29
SUBDIRS += tmck
diff --git a/c/src/ada-tests/tmtests/tm26/Makefile.am b/c/src/ada-tests/tmtests/tm26/Makefile.am
deleted file mode 100644
index 16c0baaf32..0000000000
--- a/c/src/ada-tests/tmtests/tm26/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-## $Id$
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(top_srcdir)/../../../automake/compile.am
-include $(top_srcdir)/../../../automake/lib.am
-
-include $(top_srcdir)/ada.am
-
-if EXPADA
-noinst_PROGRAMS = tm26
-endif
-tm26_SOURCES = tm26.adb config.h tmtest.adp tmtest.ads
-
-tm26$(EXEEXT): tm26.adp
- $(GNATCOMPILE) -margs -a $< -o $@
-
-include $(top_srcdir)/../../../automake/local.am
diff --git a/c/src/ada-tests/tmtests/tm26/README b/c/src/ada-tests/tmtests/tm26/README
deleted file mode 100644
index c54eb82024..0000000000
--- a/c/src/ada-tests/tmtests/tm26/README
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# $Id$
-#
-
-This test requires interfacing to internal RTEMS routines and
-is probably not worth the effort to convert.
diff --git a/c/src/ada-tests/tmtests/tm26/tm26.adb b/c/src/ada-tests/tmtests/tm26/tm26.adb
deleted file mode 100644
index 8d4db0a3ed..0000000000
--- a/c/src/ada-tests/tmtests/tm26/tm26.adb
+++ /dev/null
@@ -1,57 +0,0 @@
---
--- MAIN / BODY
---
--- DESCRIPTION:
---
--- This is the entry point for Test TM26 of the Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with RTEMS;
-with TMTEST;
-with TEST_SUPPORT;
-
-procedure TM26 is
- INIT_ID : RTEMS.ID;
- STATUS : RTEMS.STATUS_CODES;
-begin
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'I', 'N', 'I', 'T' ),
- 1,
- RTEMS.MINIMUM_STACK_SIZE,
- RTEMS.NO_PREEMPT,
- RTEMS.DEFAULT_ATTRIBUTES,
- INIT_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF INIT" );
-
-
- RTEMS.TASK_START(
- INIT_ID,
- TMTEST.INIT'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF INIT" );
-
- loop
- delay 120.0;
- end loop;
-
-end TM26;
-
diff --git a/c/src/ada-tests/tmtests/tm26/tmtest.adb b/c/src/ada-tests/tmtests/tm26/tmtest.adb
deleted file mode 100644
index ddf0c39f7a..0000000000
--- a/c/src/ada-tests/tmtests/tm26/tmtest.adb
+++ /dev/null
@@ -1,650 +0,0 @@
---
--- TMTEST / BODY
---
--- DESCRIPTION:
---
--- This package is the implementation of Test 26 of the RTEMS
--- Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with INTERFACES; use INTERFACES;
-with RTEMS_CALLING_OVERHEAD;
-with RTEMS;
-with RTEMS_TEST_SUPPORT;
-with TEST_SUPPORT;
-with TEXT_IO;
-with TIME_TEST_SUPPORT;
-with UNSIGNED32_IO;
-
-include(../../support/fp.inc)
-
-package body TMTEST is
-
---PAGE
---
--- INIT
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- INDEX : RTEMS.UNSIGNED32;
- TASK_ID : RTEMS.ID;
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- TEXT_IO.NEW_LINE( 2 );
- TEXT_IO.PUT_LINE( "*** TIME TEST 26 ***" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'F', 'P', '1', ' ' ),
- 201,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.FLOATING_POINT,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF FP1" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.FLOATING_POINT_TASK_1'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF FP1" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'F', 'P', '2', ' ' ),
- 202,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.FLOATING_POINT,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF FP2" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.FLOATING_POINT_TASK_2'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF FP2" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'L', 'O', 'W', ' ' ),
- 200,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF LOW" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.LOW_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF LOW" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'M', 'I', 'D', ' ' ),
- 128,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF MIDDLE" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.MIDDLE_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF MIDDLE" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'H', 'I', 'G', 'H' ),
- 5,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF HIGH" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.HIGH_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF HIGH" );
-
- RTEMS.SEMAPHORE_CREATE(
- RTEMS.BUILD_NAME( 'S', 'E', 'M', '1' ),
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- RTEMS.DEFAULT_ATTRIBUTES,
- TMTEST.SEMAPHORE_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
-
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'N', 'U', 'L', 'L' ),
- 254,
- 512,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE LOOP" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.NULL_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START LOOP" );
-
- end loop;
-
- RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end INIT;
-
---PAGE
---
--- NULL_TASK
---
-
- procedure NULL_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- NULL;
-
- end NULL_TASK;
-
---PAGE
---
--- HIGH_TASK
---
-
- procedure HIGH_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_ENABLE_DISPATCH;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_ENABLE_DISPATCH",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING,
- RTEMS.SUSPENDED
- );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_SET_STATE",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- -- FORCE CONTEXT SWITCH
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := TRUE;
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_DISPATCH; -- dispatches MIDDLE_TASK
-
- end HIGH_TASK;
-
---PAGE
---
--- MIDDLE_TASK
---
-
- procedure MIDDLE_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_DISPATCH (NO FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING,
- RTEMS.SUSPENDED
- );
-
- TMTEST.MIDDLE_TCB := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 200 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- TMTEST.MIDDLE_TCB.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- end MIDDLE_TASK;
-
---PAGE
---
--- LOW_TASK
---
-
- procedure LOW_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (NO FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 201 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- end LOW_TASK;
-
---PAGE
---
--- FLOATING_POINT_TASK_1
---
-
- procedure FLOATING_POINT_TASK_1 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- FP_DECLARE;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (restore 1st FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 202 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_2
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (used->init FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- FP_LOAD( 1.0 );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 202 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_2
-
- end FLOATING_POINT_TASK_1;
-
---PAGE
---
--- FLOATING_POINT_TASK_2
---
-
- procedure FLOATING_POINT_TASK_2 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- FP_DECLARE;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (init->init FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 201 ).FIRST
- )
- );
-
- FP_LOAD( 1.0 );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_1
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (used->used FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TMTEST.COMPLETE_TEST;
-
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
-
- end FLOATING_POINT_TASK_2;
-
---PAGE
---
--- COMPLETE_TEST
---
-
- procedure COMPLETE_TEST
- is
- INDEX : RTEMS.UNSIGNED32;
- OVERHEAD : RTEMS.UNSIGNED32;
- TASK_ID : RTEMS.ID;
- LOCATION : RTEMS_TEST_SUPPORT.OBJECTS_LOCATIONS;
- THE_SEMAPHORE : RTEMS.TCB_POINTER;
- THE_THREAD : RTEMS.TCB_POINTER;
- begin
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_RESUME( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_RESUME",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- TMTEST.MIDDLE_TCB,
- RTEMS.WAITING_FOR_MESSAGE
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_UNBLOCK( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_UNBLOCK",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- TMTEST.MIDDLE_TCB,
- RTEMS.WAITING_FOR_MESSAGE
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_READY( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_READY",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- TIMER_DRIVER.EMPTY_FUNCTION;
- end loop;
- OVERHEAD := TIMER_DRIVER.READ_TIMER;
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- RTEMS_TEST_SUPPORT.THREAD_GET(
- TASK_ID,
- LOCATION,
- THE_THREAD
- );
- end loop;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_GET",
- TMTEST.END_TIME,
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- 0,
- 0
- );
-
--- TIMER_DRIVER.INITIALIZE;
--- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
--- loop
--- RTEMS_TEST_SUPPORT.SEMAPHORE_GET(
--- TMTEST.SEMAPHORE_ID,
--- LOCATION,
--- THE_SEMAPHORE
--- );
--- end loop;
--- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
--- TIME_TEST_SUPPORT.PUT_TIME(
--- "SEMAPHORE_GET",
--- TMTEST.END_TIME,
--- TIME_TEST_SUPPORT.OPERATION_COUNT,
--- 0,
--- 0
--- );
- TEXT_IO.PUT_LINE( "SEMAPHORE_GET NOT IN ADA" );
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- RTEMS_TEST_SUPPORT.THREAD_GET(
- 16#3#,
- LOCATION,
- THE_THREAD
- );
- end loop;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_GET (invalid id)",
- TMTEST.END_TIME,
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- 0,
- 0
- );
-
- end COMPLETE_TEST;
-
-end TMTEST;
diff --git a/c/src/ada-tests/tmtests/tm26/tmtest.adp b/c/src/ada-tests/tmtests/tm26/tmtest.adp
deleted file mode 100644
index ddf0c39f7a..0000000000
--- a/c/src/ada-tests/tmtests/tm26/tmtest.adp
+++ /dev/null
@@ -1,650 +0,0 @@
---
--- TMTEST / BODY
---
--- DESCRIPTION:
---
--- This package is the implementation of Test 26 of the RTEMS
--- Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with INTERFACES; use INTERFACES;
-with RTEMS_CALLING_OVERHEAD;
-with RTEMS;
-with RTEMS_TEST_SUPPORT;
-with TEST_SUPPORT;
-with TEXT_IO;
-with TIME_TEST_SUPPORT;
-with UNSIGNED32_IO;
-
-include(../../support/fp.inc)
-
-package body TMTEST is
-
---PAGE
---
--- INIT
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- INDEX : RTEMS.UNSIGNED32;
- TASK_ID : RTEMS.ID;
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- TEXT_IO.NEW_LINE( 2 );
- TEXT_IO.PUT_LINE( "*** TIME TEST 26 ***" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'F', 'P', '1', ' ' ),
- 201,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.FLOATING_POINT,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF FP1" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.FLOATING_POINT_TASK_1'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF FP1" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'F', 'P', '2', ' ' ),
- 202,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.FLOATING_POINT,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF FP2" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.FLOATING_POINT_TASK_2'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF FP2" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'L', 'O', 'W', ' ' ),
- 200,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF LOW" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.LOW_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF LOW" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'M', 'I', 'D', ' ' ),
- 128,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF MIDDLE" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.MIDDLE_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF MIDDLE" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'H', 'I', 'G', 'H' ),
- 5,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF HIGH" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.HIGH_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF HIGH" );
-
- RTEMS.SEMAPHORE_CREATE(
- RTEMS.BUILD_NAME( 'S', 'E', 'M', '1' ),
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- RTEMS.DEFAULT_ATTRIBUTES,
- TMTEST.SEMAPHORE_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_CREATE" );
-
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'N', 'U', 'L', 'L' ),
- 254,
- 512,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TASK_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE LOOP" );
-
- RTEMS.TASK_START(
- TASK_ID,
- TMTEST.NULL_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START LOOP" );
-
- end loop;
-
- RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end INIT;
-
---PAGE
---
--- NULL_TASK
---
-
- procedure NULL_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- NULL;
-
- end NULL_TASK;
-
---PAGE
---
--- HIGH_TASK
---
-
- procedure HIGH_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_ENABLE_DISPATCH;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_ENABLE_DISPATCH",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING,
- RTEMS.SUSPENDED
- );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_SET_STATE",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- -- FORCE CONTEXT SWITCH
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := TRUE;
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_DISPATCH; -- dispatches MIDDLE_TASK
-
- end HIGH_TASK;
-
---PAGE
---
--- MIDDLE_TASK
---
-
- procedure MIDDLE_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_DISPATCH (NO FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING,
- RTEMS.SUSPENDED
- );
-
- TMTEST.MIDDLE_TCB := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 200 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- TMTEST.MIDDLE_TCB.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- end MIDDLE_TASK;
-
---PAGE
---
--- LOW_TASK
---
-
- procedure LOW_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (NO FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 201 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- end LOW_TASK;
-
---PAGE
---
--- FLOATING_POINT_TASK_1
---
-
- procedure FLOATING_POINT_TASK_1 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- FP_DECLARE;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (restore 1st FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 202 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_2
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (used->init FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- FP_LOAD( 1.0 );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 202 ).FIRST
- )
- );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_2
-
- end FLOATING_POINT_TASK_1;
-
---PAGE
---
--- FLOATING_POINT_TASK_2
---
-
- procedure FLOATING_POINT_TASK_2 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- EXECUTING : RTEMS.TCB_POINTER;
- FP_DECLARE;
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (init->init FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- EXECUTING := RTEMS_TEST_SUPPORT.THREAD_EXECUTING;
-
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 201 ).FIRST
- )
- );
-
- FP_LOAD( 1.0 );
-
- -- do NOT force context switch
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := FALSE;
-
- RTEMS_TEST_SUPPORT.THREAD_DISABLE_DISPATCH;
-
- TIMER_DRIVER.INITIALIZE;
-
- RTEMS_TEST_SUPPORT.CONTEXT_SAVE_FP( EXECUTING.FP_CONTEXT'ADDRESS );
- RTEMS_TEST_SUPPORT.CONTEXT_RESTORE_FP(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.FP_CONTEXT'ADDRESS
- );
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH(
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- EXECUTING.REGISTERS'ADDRESS
- ),
- RTEMS_TEST_SUPPORT.CONTEXT_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.THREAD_EXECUTING.REGISTERS'ADDRESS
- )
- );
-
- -- switch to FLOATING_POINT_TASK_1
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "CONTEXT_SWITCH (used->used FP)",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TMTEST.COMPLETE_TEST;
-
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
-
- end FLOATING_POINT_TASK_2;
-
---PAGE
---
--- COMPLETE_TEST
---
-
- procedure COMPLETE_TEST
- is
- INDEX : RTEMS.UNSIGNED32;
- OVERHEAD : RTEMS.UNSIGNED32;
- TASK_ID : RTEMS.ID;
- LOCATION : RTEMS_TEST_SUPPORT.OBJECTS_LOCATIONS;
- THE_SEMAPHORE : RTEMS.TCB_POINTER;
- THE_THREAD : RTEMS.TCB_POINTER;
- begin
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_RESUME( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_RESUME",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- TMTEST.MIDDLE_TCB,
- RTEMS.WAITING_FOR_MESSAGE
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_UNBLOCK( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_UNBLOCK",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_SET_STATE(
- TMTEST.MIDDLE_TCB,
- RTEMS.WAITING_FOR_MESSAGE
- );
-
- TIMER_DRIVER.INITIALIZE;
- RTEMS_TEST_SUPPORT.THREAD_READY( TMTEST.MIDDLE_TCB );
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_READY",
- TMTEST.END_TIME,
- 1,
- 0,
- 0
- );
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- TIMER_DRIVER.EMPTY_FUNCTION;
- end loop;
- OVERHEAD := TIMER_DRIVER.READ_TIMER;
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- RTEMS_TEST_SUPPORT.THREAD_GET(
- TASK_ID,
- LOCATION,
- THE_THREAD
- );
- end loop;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_GET",
- TMTEST.END_TIME,
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- 0,
- 0
- );
-
--- TIMER_DRIVER.INITIALIZE;
--- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
--- loop
--- RTEMS_TEST_SUPPORT.SEMAPHORE_GET(
--- TMTEST.SEMAPHORE_ID,
--- LOCATION,
--- THE_SEMAPHORE
--- );
--- end loop;
--- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
--- TIME_TEST_SUPPORT.PUT_TIME(
--- "SEMAPHORE_GET",
--- TMTEST.END_TIME,
--- TIME_TEST_SUPPORT.OPERATION_COUNT,
--- 0,
--- 0
--- );
- TEXT_IO.PUT_LINE( "SEMAPHORE_GET NOT IN ADA" );
-
- TIMER_DRIVER.INITIALIZE;
- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT
- loop
- RTEMS_TEST_SUPPORT.THREAD_GET(
- 16#3#,
- LOCATION,
- THE_THREAD
- );
- end loop;
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "THREAD_GET (invalid id)",
- TMTEST.END_TIME,
- TIME_TEST_SUPPORT.OPERATION_COUNT,
- 0,
- 0
- );
-
- end COMPLETE_TEST;
-
-end TMTEST;
diff --git a/c/src/ada-tests/tmtests/tm26/tmtest.ads b/c/src/ada-tests/tmtests/tm26/tmtest.ads
deleted file mode 100644
index 3f56e24010..0000000000
--- a/c/src/ada-tests/tmtests/tm26/tmtest.ads
+++ /dev/null
@@ -1,189 +0,0 @@
---
--- TMTEST / SPECIFICATION
---
--- DESCRIPTION:
---
--- This package is the specification for Test 26 of the RTEMS
--- Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with TIMER_DRIVER;
-with RTEMS;
-
-package TMTEST is
-
---
--- This points to the RTEMS task control block for the MIDDLE_TASK.
---
-
- MIDDLE_TCB : RTEMS.TCB_POINTER;
-
---
--- The following is the ID of the semaphore used for timing operations.
---
-
- SEMAPHORE_ID : RTEMS.ID;
-
---
--- The following variable is set to the execution time returned
--- by the timer.
---
-
- END_TIME : RTEMS.UNSIGNED32;
-
---
--- INIT
---
--- DESCRIPTION:
---
--- This RTEMS task initializes the application.
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- NULL_TASK
---
--- DESCRIPTION:
---
--- This RTEMS task has a NULL body and is only included to
--- allow TASK_START to be invoked without impacting another
--- task.
---
-
- procedure NULL_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- HIGH_TASK
---
--- DESCRIPTION:
---
--- This RTEMS task is the highest priority test task and
--- thus executes first. It is responsible for measuring
--- and reporting the following times:
---
--- + THREAD_DISABLE_DISPATCH
--- + THREAD_ENABLE_DISPATCH
--- + THREAD_SET_STATE
---
--- After measuring and reporting the above times, this task
--- starts the timer and forces dispatch to the MIDDLE_TASK.
---
-
- procedure HIGH_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- MIDDLE_TASK
---
--- DESCRIPTION:
---
--- This RTEMS task stops the timer and reports the execution
--- time for THREAD_DISPATCH without any floating point context
--- save and restore involved. Following this, it starts the
--- timer and forces a CONTEXT_SWITCH to the LOW_TASK.
---
-
- procedure MIDDLE_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- LOW_TASK
---
--- DESCRIPTION:
---
--- This RTEMS task stops the timer and reports the execution
--- time for a raw CONTEXT_SWITCH without any floating point context
--- save and restore involved. Following this, it starts the
--- timer and performs a CONTEXT_RESTORE_FP for the FLOATING_POINT_TASK_1
--- and a CONTEXT_SWITCH to FLOATING_POINT_TASK_1.
---
-
- procedure LOW_TASK (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- FLOATING_POINT_TASK_1
---
--- DESCRIPTION:
---
--- This RTEMS task stops the timer and reports the execution
--- time for a CONTEXT_SWITCH which restores the first floating
--- point context. Following this, it starts the
--- timer and performs a CONTEXT_SAVE_FP and CONTEXT_RESTORE_FP
--- and a CONTEXT_SWITCH to FLOATING_POINT_TASK_2. Once
--- control is returned to this task FLOATING_POINT_TASK_2, the
--- timer is stopped and the execution time for CONTEXT_SWITCH
--- from a used to an initialized floating point context is reported.
--- Following this, it starts the timer and performs a
--- CONTEXT_SAVE_FP and CONTEXT_RESTORE_FP and a CONTEXT_SWITCH
--- to FLOATING_POINT_TASK_2.
---
-
- procedure FLOATING_POINT_TASK_1 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- FLOATING_POINT_TASK_2
---
--- DESCRIPTION:
---
--- This RTEMS task stops the timer and reports the execution
--- time for a CONTEXT_SWITCH which switches from one freshly
--- initialized floating point context to another freshly
--- initialized floating point context. Following this, it
--- "dirties" its floating point context and starts the
--- timer. After this it performs a CONTEXT_SAVE_FP and
--- CONTEXT_RESTORE_FP and a CONTEXT_SWITCH to FLOATING_POINT_TASK_1.
--- Once control is returned to this task FLOATING_POINT_TASK_2, the
--- timer is stopped and the execution time for CONTEXT_SWITCH
--- from one used floating point context to another used floating
--- point context is reported. After this, this task invokes
--- the COMPLETE_TEST subprogram to measure and report
--- the remaining execution times measured by this test.
---
-
- procedure FLOATING_POINT_TASK_2 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- COMPLETE_TEST
---
--- DESCRIPTION:
---
--- This subprogram is responsible for measuring and reporting the
--- following execution times:
---
--- + THREAD_RESUME
--- + THREAD_UNBLOCK
--- + THREAD_READY
--- + THREAD_GET with a valid id
--- + THREAD_GET with an invalid id
---
-
- procedure COMPLETE_TEST;
-
-end TMTEST;
diff --git a/c/src/ada-tests/tmtests/tm27/Makefile.am b/c/src/ada-tests/tmtests/tm27/Makefile.am
deleted file mode 100644
index 1c8d28476a..0000000000
--- a/c/src/ada-tests/tmtests/tm27/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-## $Id$
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(top_srcdir)/../../../automake/compile.am
-include $(top_srcdir)/../../../automake/lib.am
-
-include $(top_srcdir)/ada.am
-
-if EXPADA
-noinst_PROGRAMS = tm27
-endif
-tm27_SOURCES = tm27.adb config.h tmtest.adb tmtest.ads
-
-tm27$(EXEEXT): tm27.adb
- $(GNATCOMPILE) -margs -a $< -o $@
-
-include $(top_srcdir)/../../../automake/local.am
diff --git a/c/src/ada-tests/tmtests/tm27/README b/c/src/ada-tests/tmtests/tm27/README
deleted file mode 100644
index 7fa8ba0b23..0000000000
--- a/c/src/ada-tests/tmtests/tm27/README
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# $Id$
-#
-
-This test requires interfacing to BSP provided macros which aid in
-installing an ISR. It may or may not be worth the effort to convert.
-Primarily this would require a C file which provided real bodies
-to invoke for these macros.
diff --git a/c/src/ada-tests/tmtests/tm27/tm27.adb b/c/src/ada-tests/tmtests/tm27/tm27.adb
deleted file mode 100644
index 7a8e1ca9f3..0000000000
--- a/c/src/ada-tests/tmtests/tm27/tm27.adb
+++ /dev/null
@@ -1,57 +0,0 @@
---
--- MAIN / BODY
---
--- DESCRIPTION:
---
--- This is the entry point for Test TM27 of the Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with RTEMS;
-with TMTEST;
-with TEST_SUPPORT;
-
-procedure TM27 is
- INIT_ID : RTEMS.ID;
- STATUS : RTEMS.STATUS_CODES;
-begin
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'I', 'N', 'I', 'T' ),
- 1,
- RTEMS.MINIMUM_STACK_SIZE,
- RTEMS.NO_PREEMPT,
- RTEMS.DEFAULT_ATTRIBUTES,
- INIT_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF INIT" );
-
-
- RTEMS.TASK_START(
- INIT_ID,
- TMTEST.INIT'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF INIT" );
-
- loop
- delay 120.0;
- end loop;
-
-end TM27;
-
diff --git a/c/src/ada-tests/tmtests/tm27/tmtest.adb b/c/src/ada-tests/tmtests/tm27/tmtest.adb
deleted file mode 100644
index 12761659be..0000000000
--- a/c/src/ada-tests/tmtests/tm27/tmtest.adb
+++ /dev/null
@@ -1,268 +0,0 @@
---
--- TMTEST / BODY
---
--- DESCRIPTION:
---
--- This package is the implementation of Test 27 of the RTEMS
--- Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with INTERRUPT_TIME_TEST_SUPPORT;
-with INTERFACES; use INTERFACES;
-with RTEMS_CALLING_OVERHEAD;
-with RTEMS;
-with RTEMS_TEST_SUPPORT;
-with TEST_SUPPORT;
-with TEXT_IO;
-with TIME_TEST_SUPPORT;
-with UNSIGNED32_IO;
-
-package body TMTEST is
-
---PAGE
---
--- INIT
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- TEXT_IO.NEW_LINE( 2 );
- TEXT_IO.PUT_LINE( "*** TIME TEST 27 ***" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'T', 'A', '1', ' ' ),
- 254,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TMTEST.TASK_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE TASK_1" );
-
- RTEMS.TASK_START(
- TMTEST.TASK_ID( 1 ),
- TMTEST.TASK_1'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START TASK_1" );
-
- RTEMS.TASK_CREATE(
- RTEMS.BUILD_NAME( 'T', 'A', '2', ' ' ),
- 254,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- TMTEST.TASK_ID( 2 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE TASK_2" );
-
- RTEMS.TASK_START(
- TMTEST.TASK_ID( 2 ),
- TMTEST.TASK_2'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START TASK_2" );
-
- RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end INIT;
-
---PAGE
---
--- TASK_1
---
-
- procedure TASK_1 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- RTEMS_TEST_SUPPORT.THREAD_DISPATCH_DISABLE_LEVEL := 1;
-
- TMTEST.INTERRUPT_NEST := 1;
-
- INTERRUPT_TIME_TEST_SUPPORT.INSTALL_HANDLER(
- TMTEST.ISR_HANDLER'ADDRESS
- );
-
- TIMER_DRIVER.INITIALIZE;
- INTERRUPT_TIME_TEST_SUPPORT.CAUSE_INTERRUPT;
- -- goes to ISR_HANDLER
-
- TMTEST.INTERRUPT_RETURN_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_ENTER (nested interrupt)",
- TMTEST.INTERRUPT_ENTER_NESTED_TIME,
- 1,
- 0,
- 0
- );
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_RETURN (nested interrupt)",
- TMTEST.INTERRUPT_RETURN_NESTED_TIME,
- 1,
- 0,
- 0
- );
-
- TMTEST.INTERRUPT_NEST := 0;
-
- RTEMS_TEST_SUPPORT.THREAD_DISPATCH_DISABLE_LEVEL := 0;
-
- TIMER_DRIVER.INITIALIZE;
- INTERRUPT_TIME_TEST_SUPPORT.CAUSE_INTERRUPT;
- -- goes to ISR_HANDLER
-
- TMTEST.INTERRUPT_RETURN_TIME := TIMER_DRIVER.READ_TIMER;
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_ENTER (no preempt)",
- TMTEST.INTERRUPT_ENTER_TIME,
- 1,
- 0,
- 0
- );
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_RETURN (no preempt)",
- TMTEST.INTERRUPT_RETURN_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS_TEST_SUPPORT.THREAD_DISPATCH_DISABLE_LEVEL := 0;
-
- RTEMS_TEST_SUPPORT.THREAD_HEIR :=
- RTEMS_TEST_SUPPORT.THREAD_TO_CONTROL_POINTER(
- RTEMS_TEST_SUPPORT.CHAIN_NODE_POINTER_TO_ADDRESS(
- RTEMS_TEST_SUPPORT.THREAD_READY_CHAIN( 254 ).LAST
- )
- );
-
- RTEMS_TEST_SUPPORT.CONTEXT_SWITCH_NECESSARY := TRUE;
-
- TIMER_DRIVER.INITIALIZE;
- INTERRUPT_TIME_TEST_SUPPORT.CAUSE_INTERRUPT;
- -- goes to ISR_HANDLER
-
- end TASK_1;
-
---PAGE
---
--- TASK_2
---
-
- procedure TASK_2 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- ) is
- begin
-
- TMTEST.INTERRUPT_RETURN_TIME := TIMER_DRIVER.READ_TIMER;
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_ENTER (preempt)",
- TMTEST.INTERRUPT_ENTER_TIME,
- 1,
- 0,
- 0
- );
-
- TIME_TEST_SUPPORT.PUT_TIME(
- "INTERRUPT_RETURN (preempt)",
- TMTEST.INTERRUPT_RETURN_TIME,
- 1,
- 0,
- 0
- );
-
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
-
- end TASK_2;
-
---PAGE
---
--- ISR_HANDLER
---
-
---
--- The ISR_HANDLER and ISR_HANDLER_INNER subprograms are structured
--- so that there will be as little entry overhead as possible included
--- in the interrupt entry time.
---
-
- procedure ISR_HANDLER (
- VECTOR : in RTEMS.VECTOR_NUMBER
- ) is
- begin
-
- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
-
- TMTEST.ISR_HANDLER_INNER;
-
- end ISR_HANDLER;
-
---
--- ISR_HANDLER_INNER
---
-
- procedure ISR_HANDLER_INNER
- is
- begin
-
- -- enable tracing here is necessary
-
- INTERRUPT_TIME_TEST_SUPPORT.CLEAR_INTERRUPT;
-
- case TMTEST.INTERRUPT_NEST is
- when 0 =>
- TMTEST.INTERRUPT_ENTER_TIME := TMTEST.END_TIME;
-
- when 1 =>
- TMTEST.INTERRUPT_ENTER_TIME := TMTEST.END_TIME;
- TMTEST.INTERRUPT_NEST := 2;
- TIMER_DRIVER.INITIALIZE;
- INTERRUPT_TIME_TEST_SUPPORT.CAUSE_INTERRUPT;
- -- goes to a nested copy of ISR_HANDLER
-
- TMTEST.INTERRUPT_RETURN_NESTED_TIME := TIMER_DRIVER.READ_TIMER;
-
- when 2 =>
- TMTEST.INTERRUPT_ENTER_NESTED_TIME := TMTEST.END_TIME;
-
- when others =>
- NULL;
-
- end case;
-
- -- Start the timer so interrupt return times can be measured
-
- TIMER_DRIVER.INITIALIZE;
-
- end ISR_HANDLER_INNER;
-
-end TMTEST;
diff --git a/c/src/ada-tests/tmtests/tm27/tmtest.ads b/c/src/ada-tests/tmtests/tm27/tmtest.ads
deleted file mode 100644
index ef7848c822..0000000000
--- a/c/src/ada-tests/tmtests/tm27/tmtest.ads
+++ /dev/null
@@ -1,131 +0,0 @@
---
--- TMTEST / SPECIFICATION
---
--- DESCRIPTION:
---
--- This package is the specification for Test 27 of the RTEMS
--- Timing Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-1997.
--- On-Line Applications Research Corporation (OAR).
--- Copyright assigned to U.S. Government, 1994.
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.OARcorp.com/rtems/license.html.
---
--- $Id$
---
-
-with TIMER_DRIVER;
-with RTEMS;
-
-package TMTEST is
-
---
--- This array contains the IDs of all RTEMS tasks created by this test.
---
-
- TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 2 ) of RTEMS.ID;
-
---
--- The following variable is set to the execution time returned
--- by the timer.
---
-
- END_TIME : RTEMS.UNSIGNED32;
-
---
--- The following variable indicates which interrupt case is
--- currently being timed.
---
-
- INTERRUPT_NEST : RTEMS.UNSIGNED32;
-
---
--- The following variables are set to the appropriate execution
--- times by the ISR. This is done so the times will be available
--- to be printed by a task.
---
-
- INTERRUPT_ENTER_TIME : RTEMS.UNSIGNED32;
- INTERRUPT_RETURN_TIME : RTEMS.UNSIGNED32;
-
- INTERRUPT_ENTER_NESTED_TIME : RTEMS.UNSIGNED32;
- INTERRUPT_RETURN_NESTED_TIME : RTEMS.UNSIGNED32;
-
---
--- INIT
---
--- DESCRIPTION:
---
--- This RTEMS task initializes the application.
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- TASK_1
---
--- DESCRIPTION:
---
--- This RTEMS task reports the following execution times:
---
--- + interrupt entry overhead for a nested interrupt
--- + interrupt exit overhead for a nested interrupt
--- + interrupt entry overhead when no preemption occurs
--- + interrupt exit overhead when no preemption occurs
---
-
- procedure TASK_1 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- TASK_2
---
--- DESCRIPTION:
---
--- This RTEMS task reports the following execution times:
---
--- + interrupt entry overhead when preemption occurs
--- + interrupt exit overhead when preemption occurs
---
-
- procedure TASK_2 (
- ARGUMENT : in RTEMS.TASK_ARGUMENT
- );
-
---
--- ISR_HANDLER
---
--- DESCRIPTION:
---
--- This subprogram is the test ISR. It simply stops the
--- timer and save the execution time for ISR_HANDLER_INNER.
--- This is done to minimize the subroutine linkage overhead
--- for this routine.
---
-
- procedure ISR_HANDLER (
- VECTOR : in RTEMS.VECTOR_NUMBER
- );
-
---
--- ISR_HANDLER_INNER
---
--- DESCRIPTION:
---
--- This subprogram is responsible for storing the execution
--- time for the case currently being timed.
---
-
- procedure ISR_HANDLER_INNER;
-
-end TMTEST;