summaryrefslogtreecommitdiffstats
path: root/c/src/tests/tmtests/tmoverhd
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-05-11 17:39:37 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-05-11 17:39:37 +0000
commitac7d5ef06a6d6e8d84abbd1f0b82162725f98326 (patch)
tree9304cf759a73f2a1c6fd3191948f00e870af3787 /c/src/tests/tmtests/tmoverhd
downloadrtems-ac7d5ef06a6d6e8d84abbd1f0b82162725f98326.tar.bz2
Initial revision
Diffstat (limited to 'c/src/tests/tmtests/tmoverhd')
-rw-r--r--c/src/tests/tmtests/tmoverhd/dumrtems.h255
-rw-r--r--c/src/tests/tmtests/tmoverhd/empty.c41
-rw-r--r--c/src/tests/tmtests/tmoverhd/system.h23
-rw-r--r--c/src/tests/tmtests/tmoverhd/testtask.c1279
-rw-r--r--c/src/tests/tmtests/tmoverhd/tmoverhd.doc13
5 files changed, 1611 insertions, 0 deletions
diff --git a/c/src/tests/tmtests/tmoverhd/dumrtems.h b/c/src/tests/tmtests/tmoverhd/dumrtems.h
new file mode 100644
index 0000000000..d0492c1014
--- /dev/null
+++ b/c/src/tests/tmtests/tmoverhd/dumrtems.h
@@ -0,0 +1,255 @@
+/* dumrtems.h
+ *
+ * This include file contains phony macros to map
+ * executive calls to Empty_directive().
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#ifndef __DUMRTEMS_h
+#define __DUMRTEMS_h
+
+/* RTEMS call redefinition macros */
+
+#undef rtems_signal_catch
+#undef rtems_signal_send
+#undef rtems_io_close
+#undef rtems_io_control
+#undef rtems_io_initialize
+#undef rtems_io_open
+#undef rtems_io_read
+#undef rtems_io_write
+#undef rtems_port_internal_to_external
+#undef rtems_port_external_to_internal
+#undef rtems_port_create
+#undef rtems_port_delete
+#undef rtems_port_ident
+#undef rtems_event_receive
+#undef rtems_event_send
+#undef rtems_initialize_executive
+#undef rtems_shutdown_executive
+#undef rtems_interrupt_catch
+#undef rtems_partition_create
+#undef rtems_partition_delete
+#undef rtems_partition_get_buffer
+#undef rtems_partition_ident
+#undef rtems_partition_return_buffer
+#undef rtems_message_queue_broadcast
+#undef rtems_message_queue_create
+#undef rtems_message_queue_delete
+#undef rtems_message_queue_flush
+#undef rtems_message_queue_ident
+#undef rtems_message_queue_receive
+#undef rtems_message_queue_send
+#undef rtems_message_queue_urgent
+#undef rtems_region_create
+#undef rtems_region_delete
+#undef rtems_region_get_segment
+#undef rtems_region_ident
+#undef rtems_region_return_segment
+#undef rtems_semaphore_create
+#undef rtems_semaphore_delete
+#undef rtems_semaphore_ident
+#undef rtems_semaphore_obtain
+#undef rtems_semaphore_release
+#undef rtems_task_create
+#undef rtems_task_delete
+#undef rtems_task_get_note
+#undef rtems_task_ident
+#undef rtems_task_mode
+#undef rtems_task_restart
+#undef rtems_task_resume
+#undef rtems_task_set_note
+#undef rtems_task_set_priority
+#undef rtems_task_start
+#undef rtems_task_suspend
+#undef rtems_clock_get
+#undef rtems_clock_set
+#undef rtems_clock_tick
+#undef rtems_task_wake_after
+#undef rtems_task_wake_when
+#undef rtems_fatal_error_occurred
+#undef rtems_rate_monotonic_create
+#undef rtems_rate_monotonic_ident
+#undef rtems_rate_monotonic_delete
+#undef rtems_rate_monotonic_cancel
+#undef rtems_rate_monotonic_period
+#undef rtems_multiprocessing_announce
+#undef rtems_timer_create
+#undef rtems_timer_ident
+#undef rtems_timer_delete
+#undef rtems_timer_cancel
+#undef rtems_timer_fire_after
+#undef rtems_timer_fire_when
+#undef rtems_timer_reset
+
+#define rtems_signal_catch( asraddr, mode ) \
+ Empty_directive( asraddr, mode )
+#define rtems_signal_send( tid, signal ) \
+ Empty_directive( tid, signal )
+
+#define rtems_io_close( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+#define rtems_io_control( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+#define rtems_io_initialize( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+#define rtems_io_open( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+#define rtems_io_read( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+#define rtems_io_write( major, minor, argp, rval ) \
+ Empty_directive( major, minor, argp, rval )
+
+#define rtems_port_internal_to_external( dpid, internal, external ) \
+ Empty_directive( dpid, internal, external )
+#define rtems_port_external_to_internal( dpid, external, internal ) \
+ Empty_directive( dpid, external, internal )
+#define rtems_port_create( name, intaddr, extaddr, length, dpid ) \
+ Empty_directive( name, intaddr, extaddr, length, dpid )
+#define rtems_port_delete( dpid ) \
+ Empty_directive( dpid )
+#define rtems_port_ident( name, dpid ) \
+ Empty_directive( name, dpid )
+
+#define rtems_event_receive( eventin, options, timeout, eventout ) \
+ Empty_directive( eventin, options, timeout, eventout )
+#define rtems_event_send( tid, event ) \
+ Empty_directive( tid, event )
+
+#define rtems_initialize_executive( conftbl, cputbl ) \
+ Empty_directive( conftbl, cputbl )
+#define rtems_shutdown_executive( the_error ) \
+ Empty_directive( the_error )
+
+#define rtems_interrupt_catch( israddr, vector, oldisr ) \
+ Empty_directive( israddr, vector, oldisr )
+
+#define rtems_partition_create( name, paddr, length, bsize, attr, ptid ) \
+ Empty_directive( name, paddr, length, bsize, attr, ptid )
+#define rtems_partition_delete( ptid ) \
+ Empty_directive( ptid )
+#define rtems_partition_get_buffer( ptid, bufaddr ) \
+ Empty_directive( ptid, bufaddr )
+#define rtems_partition_ident( name, node, ptid ) \
+ Empty_directive( name, node, ptid )
+#define rtems_partition_return_buffer( ptid, bufaddr ) \
+ Empty_directive( ptid, bufaddr )
+
+#define rtems_message_queue_broadcast( qid, buffer, count ) \
+ Empty_directive( qid, buffer, count )
+#define rtems_message_queue_create( name, count, attr, qid ) \
+ Empty_directive( name, count, attr, qid )
+#define rtems_message_queue_delete( qid ) \
+ Empty_directive( qid )
+#define rtems_message_queue_flush( qid, count ) \
+ Empty_directive( qid, count )
+#define rtems_message_queue_ident( name, node, qid ) \
+ Empty_directive( name, node, qid )
+#define rtems_message_queue_receive( qid, buffer, options, timeout ) \
+ Empty_directive( qid, buffer, options, timeout )
+#define rtems_message_queue_send( qid, buffer ) \
+ Empty_directive( qid, buffer )
+#define rtems_message_queue_urgent( qid, buffer ) \
+ Empty_directive( qid, buffer )
+
+#define rtems_region_create( name, paddr, length, pagesize, attr, rnid ) \
+ Empty_directive( name, paddr, length, pagesize, attr, rnid )
+#define rtems_region_delete( rnid ) \
+ Empty_directive( rnid )
+#define rtems_region_get_segment( rnid, size, options, timeout, segaddr ) \
+ Empty_directive( rnid, size, options, timeout, segaddr )
+#define rtems_region_ident( name, rnid ) \
+ Empty_directive( name, rnid )
+#define rtems_region_return_segment( rnid, segaddr ) \
+ Empty_directive( rnid, segaddr )
+
+#define rtems_semaphore_create( name, count, attr, smid ) \
+ Empty_directive( name, count, attr, smid )
+#define rtems_semaphore_delete( smid ) \
+ Empty_directive( smid )
+#define rtems_semaphore_ident( name, node, smid ) \
+ Empty_directive( name, node, smid )
+#define rtems_semaphore_obtain( smid, options, timeout ) \
+ Empty_directive( smid, options, timeout )
+#define rtems_semaphore_release( smid ) \
+ Empty_directive( smid )
+
+#define rtems_task_create( name, priority, stack_size, mode, attr, tid ) \
+ Empty_directive( name, priority, stack_size, mode, attr, tid )
+#define rtems_task_delete( tid ) \
+ Empty_directive( tid )
+#define rtems_task_get_note( tid, notepad, note ) \
+ Empty_directive( tid, notepad, note )
+#define rtems_task_ident( name, node, tid ) \
+ Empty_directive( name, node, tid )
+#define rtems_task_mode( mode, mask, pmode ) \
+ Empty_directive( mode, mask, pmode )
+#define rtems_task_restart( tid, arg ) \
+ Empty_directive( tid, arg )
+#define rtems_task_resume( tid ) \
+ Empty_directive( tid )
+#define rtems_task_set_note( tid, notepad, note ) \
+ Empty_directive( tid, notepad, note )
+#define rtems_task_set_priority( tid, priority, ppriority ) \
+ Empty_directive( tid, priority, ppriority )
+#define rtems_task_start( tid, saddr, arg ) \
+ Empty_directive( tid, saddr, arg )
+#define rtems_task_suspend( tid ) \
+ Empty_directive( tid )
+
+#define rtems_clock_get( options, time ) \
+ Empty_directive( options, time )
+#define rtems_clock_set( time ) \
+ Empty_directive( time )
+#define rtems_clock_tick() \
+ Empty_directive()
+#define rtems_task_wake_after( ticks ) \
+ Empty_directive( ticks )
+#define rtems_task_wake_when( time ) \
+ Empty_directive( time )
+
+#define rtems_fatal_error_occurred( errcode ) \
+ Empty_directive( errcode )
+
+#define rtems_rate_monotonic_create( name, id ) \
+ Empty_directive( name, id )
+#define rtems_rate_monotonic_ident( name, id ) \
+ Empty_directive( name, id )
+#define rtems_rate_monotonic_delete( id ) \
+ Empty_directive( id )
+#define rtems_rate_monotonic_cancel( id ) \
+ Empty_directive( id )
+#define rtems_rate_monotonic_period( id, period ) \
+ Empty_directive( id, period )
+
+#define rtems_multiprocessing_announce() \
+ Empty_directive()
+
+#define rtems_timer_create( name, tmid ) \
+ Empty_directive( name, tmid )
+#define rtems_timer_delete( tmid ) \
+ Empty_directive( tmid )
+#define rtems_timer_cancel( tmid ) \
+ Empty_directive( tmid )
+#define rtems_timer_ident( name, tmid ) \
+ Empty_directive( name, tmid )
+#define rtems_timer_fire_after( tmid, ticks, routine, user_data ) \
+ Empty_directive( tmid, ticks, routine, user_data )
+#define rtems_timer_fire_when( tmid, time, routine, user_data ) \
+ Empty_directive( tmid, time, routine, user_data )
+#define rtems_timer_reset( tmid ) \
+ Empty_directive( tmid )
+
+rtems_status_code Empty_directive();
+
+#endif
+/* end of include file */
diff --git a/c/src/tests/tmtests/tmoverhd/empty.c b/c/src/tests/tmtests/tmoverhd/empty.c
new file mode 100644
index 0000000000..dcfa33d1ed
--- /dev/null
+++ b/c/src/tests/tmtests/tmoverhd/empty.c
@@ -0,0 +1,41 @@
+/*
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#include "system.h"
+
+rtems_timer_service_routine Timer_handler(
+ rtems_id argument
+)
+{
+}
+
+rtems_asr Isr_handler(
+ rtems_signal_set signals
+)
+{
+}
+
+rtems_asr Asr_handler(
+ rtems_signal_set signals
+)
+{
+}
+
+rtems_task task_func() {}
+
+void null_func() {}
+
+rtems_status_code Empty_directive()
+{
+ return( RTEMS_SUCCESSFUL );
+}
diff --git a/c/src/tests/tmtests/tmoverhd/system.h b/c/src/tests/tmtests/tmoverhd/system.h
new file mode 100644
index 0000000000..9133506e7f
--- /dev/null
+++ b/c/src/tests/tmtests/tmoverhd/system.h
@@ -0,0 +1,23 @@
+/* system.h
+ *
+ * This include file is used by all tests in the Time Suite.
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+
+#include <rtems.h>
+
+#include "coverhd.h"
+#include "tmacros.h"
+
+#include "timesys.h"
+#include "timegvar.h"
diff --git a/c/src/tests/tmtests/tmoverhd/testtask.c b/c/src/tests/tmtests/tmoverhd/testtask.c
new file mode 100644
index 0000000000..0586f39a35
--- /dev/null
+++ b/c/src/tests/tmtests/tmoverhd/testtask.c
@@ -0,0 +1,1279 @@
+/*
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#include "system.h"
+#undef EXTERN
+#define EXTERN
+#include "conftbl.h"
+#include "gvar.h"
+
+rtems_unsigned8 Memory_area[ 2048 ];
+rtems_unsigned8 Internal_port_area[ 256 ];
+rtems_unsigned8 External_port_area[ 256 ];
+
+rtems_task Task_1(
+ rtems_task_argument argument
+);
+
+rtems_task Init(
+ rtems_task_argument argument
+)
+{ rtems_id id;
+ rtems_status_code status;
+
+ Set_find_average_overhead( TRUE );
+
+ puts( "\n\n*** TIME TEST overhead ***" );
+
+ status = rtems_task_create(
+ rtems_build_name( 'T', 'A', '1', ' ' ),
+ 254,
+ 2048,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ directive_failed( status, "rtems_task_create of TA1" );
+
+ status = rtems_task_start( id, Task_1, 0 );
+ directive_failed( status, "rtems_task_start of TA1" );
+
+ status = rtems_task_delete( RTEMS_SELF );
+ directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+}
+
+/* comment out the following include to verify type are correct */
+#include "dumrtems.h"
+
+rtems_task Task_1(
+ rtems_task_argument argument
+)
+{
+ rtems_name name;
+ rtems_unsigned32 index;
+ rtems_cpu_table cpu_table;
+ rtems_id id;
+ rtems_task_priority in_priority;
+ rtems_task_priority out_priority;
+ rtems_mode in_mode;
+ rtems_mode mask;
+ rtems_mode out_mode;
+ rtems_unsigned32 note;
+ rtems_time_of_day time;
+ rtems_interval timeout;
+ rtems_signal_set signals;
+ void *address_1;
+ rtems_event_set events;
+ long buffer[ 4 ];
+ rtems_unsigned32 count;
+ rtems_device_major_number major;
+ rtems_device_minor_number minor;
+ rtems_unsigned32 io_result;
+ rtems_unsigned32 error;
+ rtems_clock_get_options options;
+
+ name = rtems_build_name( 'N', 'A', 'M', 'E' );
+ in_priority = 250;
+ in_mode = RTEMS_NO_PREEMPT;
+ mask = RTEMS_PREEMPT_MASK;
+ note = 8;
+ timeout = 100;
+ signals = RTEMS_SIGNAL_1 | RTEMS_SIGNAL_3;
+ major = 10;
+ minor = 0;
+ error = 100;
+ options = 0;
+
+/* rtems_initialize_executive */
+ Timer_initialize();
+ for ( index=1 ; index <= OPERATION_COUNT ; index++ )
+ (void) rtems_initialize_executive( &BSP_Configuration, &cpu_table );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_initialize_executive",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_shutdown_executive */
+
+ Timer_initialize();
+ for ( index=1 ; index <= OPERATION_COUNT ; index++ )
+ (void) rtems_shutdown_executive( error );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_shutdown_executive",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_create(
+ name,
+ in_priority,
+ 2048,
+ RTEMS_DEFAULT_MODES,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_ident( name, RTEMS_SEARCH_ALL_NODES, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_start */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_start( id, Task_1, 0 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_start",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_restart */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_restart( id, 0 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_restart",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_suspend */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_suspend( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_suspend",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_resume */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_resume( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_resume",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_set_priority */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_set_priority( id, in_priority, &out_priority );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_set_priority",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_mode */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_mode( in_mode, mask, &out_mode );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_mode",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_get_note */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_get_note( id, 1, note );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_get_note",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_set_note */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_set_note( id, 1, note );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_set_note",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_wake_when */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_wake_when( time );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_wake_when",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_task_wake_after */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_task_wake_after( timeout );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_task_wake_after",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_interrupt_catch */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_interrupt_catch( Isr_handler, 5, address_1 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_interrupt_catch",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_clock_get */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_clock_get( options, time );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_clock_get",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_clock_set */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_clock_set( time );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_clock_set",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_clock_tick */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_clock_tick();
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_clock_tick",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+pause();
+
+/* rtems_timer_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_create( name, &id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_ident( name, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_fire_after */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_fire_after(
+ id,
+ timeout,
+ Timer_handler,
+ NULL
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_fire_after",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_fire_when */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_fire_when(
+ id,
+ time,
+ Timer_handler,
+ NULL
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_fire_when",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_reset */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_reset( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_reset",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_timer_cancel */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_timer_cancel( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_timer_cancel",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_semaphore_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_semaphore_create(
+ name,
+ 128,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_semaphore_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_semaphore_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_semaphore_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_semaphore_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_semaphore_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_semaphore_ident( name, RTEMS_SEARCH_ALL_NODES, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_semaphore_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_semaphore_obtain */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_semaphore_obtain( id, RTEMS_DEFAULT_OPTIONS, timeout );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_semaphore_obtain",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_semaphore_release */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_semaphore_release( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_semaphore_release",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_create(
+ name,
+ 128,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_ident(
+ name,
+ RTEMS_SEARCH_ALL_NODES,
+ id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_send */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_send( id, (long (*)[4])buffer );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_send",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_urgent */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_urgent( id, (long (*)[4])buffer );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_urgent",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_broadcast */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_broadcast(
+ id,
+ (long (*)[4])buffer,
+ &count
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_broadcast",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_receive */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_receive(
+ id,
+ (long (*)[4])buffer,
+ RTEMS_DEFAULT_OPTIONS,
+ timeout
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_receive",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_message_queue_flush */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_message_queue_flush( id, &count );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_message_queue_flush",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+pause();
+
+/* rtems_event_send */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_event_send( id, events );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_event_send",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_event_receive */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_event_receive(
+ RTEMS_EVENT_16,
+ RTEMS_DEFAULT_OPTIONS,
+ timeout,
+ &events
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_event_receive",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_signal_catch */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_signal_catch( Asr_handler, RTEMS_DEFAULT_MODES );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_signal_catch",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_signal_send */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_signal_send( id, signals );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_signal_send",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_partition_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_partition_create(
+ name,
+ Memory_area,
+ 2048,
+ 128,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_partition_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_partition_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_partition_ident( name, RTEMS_SEARCH_ALL_NODES, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_partition_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_partition_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_partition_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_partition_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_partition_get_buffer */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_partition_get_buffer( id, address_1 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_partition_get_buffer",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_partition_return_buffer */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_partition_return_buffer( id, address_1 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_partition_return_buffer",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_region_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_region_create(
+ name,
+ Memory_area,
+ 2048,
+ 128,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_region_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_region_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_region_ident( name, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_region_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_region_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_region_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_region_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_region_get_segment */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_region_get_segment(
+ id,
+ 243,
+ RTEMS_DEFAULT_OPTIONS,
+ timeout,
+ &address_1
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_region_get_segment",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_region_return_segment */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_region_return_segment( id, address_1 );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_region_return_segment",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_port_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_port_create(
+ name,
+ Internal_port_area,
+ External_port_area,
+ 0xff,
+ &id
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_port_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_port_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_port_ident( name, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_port_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_port_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_port_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_port_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_port_external_to_internal */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_port_external_to_internal(
+ id,
+ &External_port_area[ 7 ],
+ address_1
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_port_external_to_internal",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_port_internal_to_external */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_port_internal_to_external(
+ id,
+ &Internal_port_area[ 7 ],
+ address_1
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_port_internal_to_external",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+pause();
+
+/* rtems_io_initialize */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_initialize(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_initialize",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_io_open */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_open(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_open",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_io_close */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_close(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_close",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_io_read */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_read(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_read",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_io_write */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_write(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_write",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_io_control */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_io_control(
+ major,
+ minor,
+ address_1,
+ &io_result
+ );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_io_control",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_fatal_error_occurred */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_fatal_error_occurred( error );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_fatal_error_occurred",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_rate_monotonic_create */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_rate_monotonic_create( name, &id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_rate_monotonic_create",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_rate_monotonic_ident */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_rate_monotonic_ident( name, id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_rate_monotonic_ident",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_rate_monotonic_delete */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_rate_monotonic_delete( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_rate_monotonic_delete",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_rate_monotonic_cancel */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_rate_monotonic_cancel( id );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_rate_monotonic_cancel",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_rate_monotonic_period */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_rate_monotonic_period( id, timeout );
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_rate_monotonic_period",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+/* rtems_multiprocessing_announce */
+
+ Timer_initialize();
+ for ( index = 1 ; index <= OPERATION_COUNT ; index ++ )
+ (void) rtems_multiprocessing_announce();
+ end_time = Read_timer();
+
+ put_time(
+ "rtems_multiprocessing_announce",
+ end_time,
+ OPERATION_COUNT,
+ overhead,
+ 0
+ );
+
+ puts( "*** END OF TIME OVERHEAD ***\n" );
+
+ exit( 0 );
+}
diff --git a/c/src/tests/tmtests/tmoverhd/tmoverhd.doc b/c/src/tests/tmtests/tmoverhd/tmoverhd.doc
new file mode 100644
index 0000000000..0de40191c6
--- /dev/null
+++ b/c/src/tests/tmtests/tmoverhd/tmoverhd.doc
@@ -0,0 +1,13 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+# On-Line Applications Research Corporation (OAR).
+# All rights assigned to U.S. Government, 1994.
+#
+# This material may be reproduced by or for the U.S. Government pursuant
+# to the copyright license under the clause at DFARS 252.227-7013. This
+# notice must appear in all copies of this file and its derivatives.
+#
+
+