From b2b7cfc91e13ee70b7ad20cb7318057facbf7320 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 26 Aug 2002 17:24:44 +0000 Subject: 2002-08-26 Joel Sherrill * 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. --- c/src/ada-tests/ChangeLog | 6 + c/src/ada-tests/configure.ac | 2 - c/src/ada-tests/tmtests/Makefile.am | 2 - c/src/ada-tests/tmtests/tm26/Makefile.am | 17 - c/src/ada-tests/tmtests/tm26/README | 6 - c/src/ada-tests/tmtests/tm26/tm26.adb | 57 --- c/src/ada-tests/tmtests/tm26/tmtest.adb | 650 ------------------------------- c/src/ada-tests/tmtests/tm26/tmtest.adp | 650 ------------------------------- c/src/ada-tests/tmtests/tm26/tmtest.ads | 189 --------- c/src/ada-tests/tmtests/tm27/Makefile.am | 17 - c/src/ada-tests/tmtests/tm27/README | 8 - c/src/ada-tests/tmtests/tm27/tm27.adb | 57 --- c/src/ada-tests/tmtests/tm27/tmtest.adb | 268 ------------- c/src/ada-tests/tmtests/tm27/tmtest.ads | 131 ------- 14 files changed, 6 insertions(+), 2054 deletions(-) delete mode 100644 c/src/ada-tests/tmtests/tm26/Makefile.am delete mode 100644 c/src/ada-tests/tmtests/tm26/README delete mode 100644 c/src/ada-tests/tmtests/tm26/tm26.adb delete mode 100644 c/src/ada-tests/tmtests/tm26/tmtest.adb delete mode 100644 c/src/ada-tests/tmtests/tm26/tmtest.adp delete mode 100644 c/src/ada-tests/tmtests/tm26/tmtest.ads delete mode 100644 c/src/ada-tests/tmtests/tm27/Makefile.am delete mode 100644 c/src/ada-tests/tmtests/tm27/README delete mode 100644 c/src/ada-tests/tmtests/tm27/tm27.adb delete mode 100644 c/src/ada-tests/tmtests/tm27/tmtest.adb delete mode 100644 c/src/ada-tests/tmtests/tm27/tmtest.ads (limited to 'c/src/ada-tests') 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 @@ -4,6 +4,12 @@ even though this test is not supported. * sptests/sp19/sp19.adb: New file. +2002-08-26 Joel Sherrill + + * 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 * mptests/mp01/mptest.ads, mptests/mp02/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; -- cgit v1.2.3