diff options
Diffstat (limited to 'testsuites/ada/tmtests/tmoverhd/tmtest.adb')
-rw-r--r-- | testsuites/ada/tmtests/tmoverhd/tmtest.adb | 1363 |
1 files changed, 1363 insertions, 0 deletions
diff --git a/testsuites/ada/tmtests/tmoverhd/tmtest.adb b/testsuites/ada/tmtests/tmoverhd/tmtest.adb new file mode 100644 index 0000000000..58c5ad09c6 --- /dev/null +++ b/testsuites/ada/tmtests/tmoverhd/tmtest.adb @@ -0,0 +1,1363 @@ +-- +-- TMTEST / BODY +-- +-- DESCRIPTION: +-- +-- This package is the implementation of Calling Overhead Test of the RTEMS +-- Timing Test Suite. +-- +-- DEPENDENCIES: +-- +-- +-- +-- COPYRIGHT (c) 1989-2009. +-- On-Line Applications Research Corporation (OAR). +-- +-- The license and distribution terms for this file may in +-- the file LICENSE in this distribution or at +-- http://www.rtems.org/license/LICENSE. +-- + +with DUMMY_RTEMS; +with TEST_SUPPORT; +with TEXT_IO; +with TIME_TEST_SUPPORT; +with TIMER_DRIVER; + +package body TMTEST is + +--PAGE +-- +-- INIT +-- + + procedure INIT ( + ARGUMENT : in RTEMS.TASKS.ARGUMENT + ) is + pragma Unreferenced(ARGUMENT); + STATUS : RTEMS.STATUS_CODES; + begin + + TEXT_IO.NEW_LINE( 2 ); + TEXT_IO.PUT_LINE( "*** TIME TEST OVERHEAD ***" ); + + TIMER_DRIVER.SET_FIND_AVERAGE_OVERHEAD( TRUE ); + + TMTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'A', '1', ' ' ); + + RTEMS.TASKS.CREATE( + TMTEST.TASK_NAME( 1 ), + 254, + 2048, + RTEMS.DEFAULT_MODES, + RTEMS.DEFAULT_ATTRIBUTES, + TMTEST.TASK_ID( 1 ), + STATUS + ); + TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" ); + + RTEMS.TASKS.START( + TMTEST.TASK_ID( 1 ), + TMTEST.TASK_1'ACCESS, + 0, + STATUS + ); + TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" ); + + RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS ); + TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" ); + + end INIT; + +--PAGE +-- +-- TIMER_HANDLER +-- + + procedure TIMER_HANDLER ( + IGNORED_ID : in RTEMS.ID; + IGNORED_ADDRESS : in RTEMS.ADDRESS + ) is + begin + + NULL; + + end TIMER_HANDLER; + +--PAGE +-- +-- ISR_HANDLER +-- + +-- procedure ISR_HANDLER ( +-- VECTOR : in RTEMS.VECTOR_NUMBER +-- ) is +-- begin +-- +-- NULL; +-- +-- end ISR_HANDLER; + +--PAGE +-- +-- ASR_HANDLER +-- + + procedure ASR_HANDLER ( + SIGNALS : in RTEMS.SIGNAL_SET + ) is + begin + + NULL; + + end ASR_HANDLER; + +--PAGE +-- +-- TASK_1 +-- + + procedure TASK_1 ( + ARGUMENT : in RTEMS.TASKS.ARGUMENT + ) is + pragma Unreferenced(ARGUMENT); + NAME : RTEMS.NAME; + OVERHEAD : RTEMS.UNSIGNED32; + ID : RTEMS.ID; + IN_PRIORITY : RTEMS.TASKS.PRIORITY; + OUT_PRIORITY : RTEMS.TASKS.PRIORITY; + IN_MODE : RTEMS.MODE; + MASK : RTEMS.MODE; + OUT_MODE : RTEMS.MODE; + TIME : RTEMS.TIME_OF_DAY; + TIMEOUT : RTEMS.INTERVAL; + SIGNALS : RTEMS.SIGNAL_SET; + ADDRESS_1 : RTEMS.ADDRESS; + EVENTS : RTEMS.SIGNAL_SET; + BUFFER : TMTEST.BUFFER; + BUFFER_POINTER : RTEMS.ADDRESS; + MESSAGE_SIZE : RTEMS.UNSIGNED32; + COUNT : RTEMS.UNSIGNED32; + ERROR : RTEMS.UNSIGNED32; + STATUS : RTEMS.STATUS_CODES; + begin + + NAME := RTEMS.BUILD_NAME( 'N', 'A', 'M', 'E' ); + + BUFFER_POINTER := BUFFER'ADDRESS; + OVERHEAD := 0; + IN_PRIORITY := 0; + IN_MODE := 0; + MASK := 0; + SIGNALS := 0; + EVENTS := 0; + ERROR := 0; + +-- TASK_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_CREATE( + NAME, + IN_PRIORITY, + 2048, + RTEMS.DEFAULT_MODES, + RTEMS.DEFAULT_ATTRIBUTES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_IDENT( + NAME, + RTEMS.SEARCH_ALL_NODES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_START + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_START( ID, TMTEST.TASK_1'ACCESS, 0, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_START", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_RESTART + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_RESTART( ID, 0, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_RESTART", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_SUSPEND + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_SUSPEND( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_SUSPEND", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_RESUME + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_RESUME( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_RESUME", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_SET_PRIORITY + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_SET_PRIORITY( + ID, + IN_PRIORITY, + OUT_PRIORITY, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_SET_PRIORITY", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_MODE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_MODE( + IN_MODE, + MASK, + OUT_MODE, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_MODE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_WAKE_WHEN + + TIME.YEAR := 2000; + TIME.MONTH := 12; + TIME.DAY := 25; + TIME.HOUR := 6; + TIME.MINUTE := 1; + TIME.SECOND := 2; + TIME.TICKS := 0; + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_WAKE_WHEN( TIME, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_WAKE_WHEN", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TASK_WAKE_AFTER + + TIMEOUT := 1; + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TASK_WAKE_AFTER( TIMEOUT, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TASK_WAKE_AFTER", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- INTERRUPT_CATCH + +-- TIMER_DRIVER.INITIALIZE; +-- for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT +-- loop +-- DUMMY_RTEMS.INTERRUPT_CATCH( +-- TMTEST.ISR_HANDLER'ADDRESS, +-- RTEMS.VECTOR_NUMBER'FIRST, +-- ADDRESS_1, +-- STATUS +-- ); +-- end loop; +-- TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; +-- +-- TIME_TEST_SUPPORT.PUT_TIME( +-- "INTERRUPT_CATCH", +-- TMTEST.END_TIME, +-- TIME_TEST_SUPPORT.OPERATION_COUNT, +-- OVERHEAD, +-- 0 +-- ); + +-- CLOCK_GET_TOD + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.CLOCK_GET_TOD( TIME, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "CLOCK_GET", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- CLOCK_SET + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.CLOCK_SET( TIME, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "CLOCK_SET", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- CLOCK_TICK + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.CLOCK_TICK( STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "CLOCK_TICK", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +TEST_SUPPORT.PAUSE; + +-- TIMER_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_CREATE( NAME, ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_IDENT( + NAME, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_FIRE_AFTER + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_FIRE_AFTER( + ID, + TIMEOUT, + TMTEST.TIMER_HANDLER'ACCESS, + RTEMS.NULL_ADDRESS, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_FIRE_AFTER", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_FIRE_WHEN + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_FIRE_WHEN( + ID, + TIME, + TMTEST.TIMER_HANDLER'ACCESS, + RTEMS.NULL_ADDRESS, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_FIRE_WHEN", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_RESET + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_RESET( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_RESET", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- TIMER_CANCEL + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.TIMER_CANCEL( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "TIMER_CANCEL", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SEMAPHORE_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SEMAPHORE_CREATE( + NAME, + 128, + RTEMS.DEFAULT_ATTRIBUTES, + RTEMS.TASKS.NO_PRIORITY, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SEMAPHORE_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SEMAPHORE_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SEMAPHORE_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SEMAPHORE_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SEMAPHORE_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SEMAPHORE_IDENT( + NAME, + RTEMS.SEARCH_ALL_NODES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SEMAPHORE_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SEMAPHORE_OBTAIN + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SEMAPHORE_OBTAIN( + ID, + RTEMS.DEFAULT_OPTIONS, + TIMEOUT, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SEMAPHORE_OBTAIN", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SEMAPHORE_RELEASE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SEMAPHORE_RELEASE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SEMAPHORE_RELEASE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_CREATE( + NAME, + 128, + 16, + RTEMS.DEFAULT_ATTRIBUTES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_IDENT( + NAME, + RTEMS.SEARCH_ALL_NODES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_SEND + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_SEND( ID, BUFFER_POINTER, 16, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_SEND", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_URGENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_URGENT( ID, BUFFER_POINTER, 16, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_URGENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_BROADCAST + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_BROADCAST( + ID, + BUFFER_POINTER, + 16, + COUNT, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_BROADCAST", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_RECEIVE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_RECEIVE( + ID, + BUFFER_POINTER, + RTEMS.DEFAULT_OPTIONS, + TIMEOUT, + MESSAGE_SIZE, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_RECEIVE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MESSAGE_QUEUE_FLUSH + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MESSAGE_QUEUE_FLUSH( ID, COUNT, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MESSAGE_QUEUE_FLUSH", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +TEST_SUPPORT.PAUSE; + +-- EVENT_SEND + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.EVENT_SEND( ID, EVENTS, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "EVENT_SEND", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- EVENT_RECEIVE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.EVENT_RECEIVE( + RTEMS.EVENT_16, + EVENTS, + RTEMS.DEFAULT_OPTIONS, + TIMEOUT, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "EVENT_RECEIVE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SIGNAL_CATCH + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SIGNAL_CATCH( + TMTEST.ASR_HANDLER'ACCESS, + RTEMS.DEFAULT_MODES, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SIGNAL_CATCH", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- SIGNAL_SEND + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.SIGNAL_SEND( ID, SIGNALS, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "SIGNAL_SEND", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PARTITION_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PARTITION_CREATE( + NAME, + TMTEST.MEMORY_AREA'ADDRESS, + 2048, + 128, + RTEMS.DEFAULT_ATTRIBUTES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PARTITION_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PARTITION_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PARTITION_IDENT( + NAME, + RTEMS.SEARCH_ALL_NODES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PARTITION_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PARTITION_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PARTITION_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PARTITION_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PARTITION_GET_BUFFER + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PARTITION_GET_BUFFER( ID, ADDRESS_1, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PARTITION_GET_BUFFER", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PARTITION_RETURN_BUFFER + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PARTITION_RETURN_BUFFER( ID, ADDRESS_1, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PARTITION_RETURN_BUFFER", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- REGION_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.REGION_CREATE( + NAME, + TMTEST.MEMORY_AREA'ADDRESS, + 2048, + 128, + RTEMS.DEFAULT_ATTRIBUTES, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "REGION_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- REGION_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.REGION_IDENT( + NAME, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "REGION_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- REGION_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.REGION_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "REGION_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- REGION_GET_SEGMENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.REGION_GET_SEGMENT( + ID, + 243, + RTEMS.DEFAULT_OPTIONS, + TIMEOUT, + ADDRESS_1, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "REGION_GET_SEGMENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- REGION_RETURN_SEGMENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.REGION_RETURN_SEGMENT( ID, ADDRESS_1, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "REGION_RETURN_SEGMENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PORT_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PORT_CREATE( + NAME, + TMTEST.INTERNAL_PORT_AREA'ADDRESS, + TMTEST.EXTERNAL_PORT_AREA'ADDRESS, + TMTEST.INTERNAL_PORT_AREA'LENGTH, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PORT_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PORT_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PORT_IDENT( NAME, ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PORT_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PORT_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PORT_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PORT_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PORT_EXTERNAL_TO_INTERNAL + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PORT_EXTERNAL_TO_INTERNAL( + ID, + TMTEST.EXTERNAL_PORT_AREA( 7 )'ADDRESS, + ADDRESS_1, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PORT_EXTERNAL_TO_INTERNAL", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- PORT_INTERNAL_TO_EXTERNAL + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.PORT_INTERNAL_TO_EXTERNAL( + ID, + TMTEST.INTERNAL_PORT_AREA( 7 )'ADDRESS, + ADDRESS_1, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "PORT_INTERNAL_TO_EXTERNAL", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +TEST_SUPPORT.PAUSE; + +-- FATAL_ERROR_OCCURRED + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.FATAL_ERROR_OCCURRED( ERROR ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "FATAL_ERROR_OCCURRED", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- RATE_MONOTONIC_CREATE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.RATE_MONOTONIC_CREATE( NAME, ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "RATE_MONOTONIC_CREATE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- RATE_MONOTONIC_IDENT + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.RATE_MONOTONIC_IDENT( + NAME, + ID, + STATUS + ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "RATE_MONOTONIC_IDENT", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- RATE_MONOTONIC_DELETE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.RATE_MONOTONIC_DELETE( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "RATE_MONOTONIC_DELETE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- RATE_MONOTONIC_CANCEL + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.RATE_MONOTONIC_CANCEL( ID, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "RATE_MONOTONIC_CANCEL", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- RATE_MONOTONIC_PERIOD + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.RATE_MONOTONIC_PERIOD( ID, TIMEOUT, STATUS ); + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "RATE_MONOTONIC_PERIOD", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + +-- MULTIPROCESSING_ANNOUNCE + + TIMER_DRIVER.INITIALIZE; + for INDEX in 1 .. TIME_TEST_SUPPORT.OPERATION_COUNT + loop + DUMMY_RTEMS.MULTIPROCESSING_ANNOUNCE; + end loop; + TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER; + + TIME_TEST_SUPPORT.PUT_TIME( + "MULTIPROCESSING_ANNOUNCE", + TMTEST.END_TIME, + TIME_TEST_SUPPORT.OPERATION_COUNT, + OVERHEAD, + 0 + ); + + TEXT_IO.PUT_LINE( "*** END OF TIME TEST OVERHEAD ***" ); + RTEMS.SHUTDOWN_EXECUTIVE( 0 ); + + end TASK_1; + +end TMTEST; |