new files

This commit is contained in:
Joel Sherrill
1997-06-03 22:49:47 +00:00
parent 7c49880096
commit 5d0f4a56d1
5 changed files with 362 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
--
-- RTEMS_CALLING_OVERHEAD / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package contains the invocation overhead for each
-- of the RTEMS directives on the MC68020 Timing Platform.
-- This time is then subtracted from the execution time
-- of each directive as measured by the Timing 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;
package RTEMS_CALLING_OVERHEAD is
INITIALIZE_EXECUTIVE : constant RTEMS.UNSIGNED32 := 0;
SHUTDOWN_EXECUTIVE : constant RTEMS.UNSIGNED32 := 0;
TASK_CREATE : constant RTEMS.UNSIGNED32 := 0;
TASK_IDENT : constant RTEMS.UNSIGNED32 := 0;
TASK_START : constant RTEMS.UNSIGNED32 := 0;
TASK_RESTART : constant RTEMS.UNSIGNED32 := 0;
TASK_DELETE : constant RTEMS.UNSIGNED32 := 0;
TASK_SUSPEND : constant RTEMS.UNSIGNED32 := 0;
TASK_RESUME : constant RTEMS.UNSIGNED32 := 0;
TASK_SET_PRIORITY : constant RTEMS.UNSIGNED32 := 0;
TASK_MODE : constant RTEMS.UNSIGNED32 := 0;
TASK_GET_NOTE : constant RTEMS.UNSIGNED32 := 0;
TASK_SET_NOTE : constant RTEMS.UNSIGNED32 := 0;
TASK_WAKE_WHEN : constant RTEMS.UNSIGNED32 := 0;
TASK_WAKE_AFTER : constant RTEMS.UNSIGNED32 := 0;
INTERRUPT_CATCH : constant RTEMS.UNSIGNED32 := 0;
CLOCK_GET : constant RTEMS.UNSIGNED32 := 0;
CLOCK_SET : constant RTEMS.UNSIGNED32 := 0;
CLOCK_TICK : constant RTEMS.UNSIGNED32 := 0;
TIMER_CREATE : constant RTEMS.UNSIGNED32 := 0;
TIMER_DELETE : constant RTEMS.UNSIGNED32 := 0;
TIMER_IDENT : constant RTEMS.UNSIGNED32 := 0;
TIMER_FIRE_AFTER : constant RTEMS.UNSIGNED32 := 0;
TIMER_FIRE_WHEN : constant RTEMS.UNSIGNED32 := 0;
TIMER_RESET : constant RTEMS.UNSIGNED32 := 0;
TIMER_CANCEL : constant RTEMS.UNSIGNED32 := 0;
SEMAPHORE_CREATE : constant RTEMS.UNSIGNED32 := 0;
SEMAPHORE_DELETE : constant RTEMS.UNSIGNED32 := 0;
SEMAPHORE_IDENT : constant RTEMS.UNSIGNED32 := 0;
SEMAPHORE_OBTAIN : constant RTEMS.UNSIGNED32 := 0;
SEMAPHORE_RELEASE : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_CREATE : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_IDENT : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_DELETE : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_SEND : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_URGENT : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_BROADCAST : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_RECEIVE : constant RTEMS.UNSIGNED32 := 0;
MESSAGE_QUEUE_FLUSH : constant RTEMS.UNSIGNED32 := 0;
EVENT_SEND : constant RTEMS.UNSIGNED32 := 0;
EVENT_RECEIVE : constant RTEMS.UNSIGNED32 := 0;
SIGNAL_CATCH : constant RTEMS.UNSIGNED32 := 0;
SIGNAL_SEND : constant RTEMS.UNSIGNED32 := 0;
PARTITION_CREATE : constant RTEMS.UNSIGNED32 := 0;
PARTITION_IDENT : constant RTEMS.UNSIGNED32 := 0;
PARTITION_DELETE : constant RTEMS.UNSIGNED32 := 0;
PARTITION_GET_BUFFER : constant RTEMS.UNSIGNED32 := 0;
PARTITION_RETURN_BUFFER : constant RTEMS.UNSIGNED32 := 0;
REGION_CREATE : constant RTEMS.UNSIGNED32 := 0;
REGION_IDENT : constant RTEMS.UNSIGNED32 := 0;
REGION_DELETE : constant RTEMS.UNSIGNED32 := 0;
REGION_GET_SEGMENT : constant RTEMS.UNSIGNED32 := 0;
REGION_RETURN_SEGMENT : constant RTEMS.UNSIGNED32 := 0;
PORT_CREATE : constant RTEMS.UNSIGNED32 := 0;
PORT_IDENT : constant RTEMS.UNSIGNED32 := 0;
PORT_DELETE : constant RTEMS.UNSIGNED32 := 0;
PORT_EXTERNAL_TO_INTERNAL : constant RTEMS.UNSIGNED32 := 0;
PORT_INTERNAL_TO_EXTERNAL : constant RTEMS.UNSIGNED32 := 0;
IO_INITIALIZE : constant RTEMS.UNSIGNED32 := 0;
IO_OPEN : constant RTEMS.UNSIGNED32 := 0;
IO_CLOSE : constant RTEMS.UNSIGNED32 := 0;
IO_READ : constant RTEMS.UNSIGNED32 := 0;
IO_WRITE : constant RTEMS.UNSIGNED32 := 0;
IO_CONTROL : constant RTEMS.UNSIGNED32 := 0;
FATAL_ERROR_OCCURRED : constant RTEMS.UNSIGNED32 := 0;
RATE_MONOTONIC_CREATE : constant RTEMS.UNSIGNED32 := 0;
RATE_MONOTONIC_IDENT : constant RTEMS.UNSIGNED32 := 0;
RATE_MONOTONIC_DELETE : constant RTEMS.UNSIGNED32 := 0;
RATE_MONOTONIC_CANCEL : constant RTEMS.UNSIGNED32 := 0;
RATE_MONOTONIC_PERIOD : constant RTEMS.UNSIGNED32 := 0;
MULTIPROCESSING_ANNOUNCE : constant RTEMS.UNSIGNED32 := 0;
end RTEMS_CALLING_OVERHEAD;

View File

@@ -0,0 +1,77 @@
--
-- TIME_TEST_SUPPORT / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package provides routines which aid the individual tests in
-- the Timing Test Suite and simplify their design and operation.
--
-- 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;
with TEXT_IO;
with UNSIGNED32_IO;
package body TIME_TEST_SUPPORT is
--PAGE
--
-- PUT_TIME
--
procedure PUT_TIME (
MESSAGE : in STRING;
TOTAL_TIME : in RTEMS.UNSIGNED32;
ITERATIONS : in RTEMS.UNSIGNED32;
LOOP_OVERHEAD : in RTEMS.UNSIGNED32;
CALLING_OVERHEAD : in RTEMS.UNSIGNED32
) is
PER_ITERATION : RTEMS.UNSIGNED32;
begin
PER_ITERATION := (TOTAL_TIME - LOOP_OVERHEAD) / ITERATIONS;
PER_ITERATION := PER_ITERATION - CALLING_OVERHEAD;
if PER_ITERATION = 0 then
TEXT_IO.PUT( "TOTAL_TIME " );
UNSIGNED32_IO.PUT( TOTAL_TIME );
TEXT_IO.NEW_LINE;
TEXT_IO.PUT( "ITERATIONS " );
UNSIGNED32_IO.PUT( ITERATIONS );
TEXT_IO.NEW_LINE;
TEXT_IO.PUT( "LOOP_OVERHEAD " );
UNSIGNED32_IO.PUT( LOOP_OVERHEAD );
TEXT_IO.NEW_LINE;
TEXT_IO.PUT( "CALLING_OVERHEAD " );
UNSIGNED32_IO.PUT( CALLING_OVERHEAD );
TEXT_IO.NEW_LINE;
end if;
TEXT_IO.PUT( MESSAGE );
TEXT_IO.PUT( " " );
UNSIGNED32_IO.PUT( PER_ITERATION );
TEXT_IO.NEW_LINE;
TEXT_IO.FLUSH;
end PUT_TIME;
end TIME_TEST_SUPPORT;

View File

@@ -0,0 +1,54 @@
--
-- TIME_TEST_SUPPORT / SPECIFICATION
--
-- DESCRIPTION:
--
-- This package provides routines which aid the individual tests in
-- the Timing Test Suite and simplify their design and operation.
--
-- 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;
package TIME_TEST_SUPPORT is
--
-- The following constants define the number of times a directive
-- will be performed in the Timing Suite.
--
OPERATION_COUNT : constant RTEMS.UNSIGNED32 := 100;
ITERATION_COUNT : constant RTEMS.UNSIGNED32 := 100;
--
-- PUT_TIME
--
-- DESCRIPTION:
--
-- This subprogram prints the MESSAGE followed by the length of
-- time which each individual operation took. All times are
-- in microseconds.
--
procedure PUT_TIME (
MESSAGE : in STRING;
TOTAL_TIME : in RTEMS.UNSIGNED32;
ITERATIONS : in RTEMS.UNSIGNED32;
LOOP_OVERHEAD : in RTEMS.UNSIGNED32;
CALLING_OVERHEAD : in RTEMS.UNSIGNED32
);
end TIME_TEST_SUPPORT;

View File

@@ -0,0 +1,45 @@
--
-- Timer_Driver / Body
--
-- Description:
--
-- This package is the body for the Timer Driver.
--
-- 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;
package body Timer_Driver is
--PAGE
--
-- Set_Find_Average_Overhead
--
--
procedure Set_Find_Average_Overhead (
Find_Flag : in Standard.Boolean
) is
procedure Set_Find_Average_Overhead_base (
Find_Flag : in RTEMS.Boolean
);
pragma Import (C, Set_Find_Average_Overhead_base,
"Set_find_average_overhead");
begin
Set_Find_Average_Overhead_base (RTEMS.From_Ada_Boolean (Find_Flag));
end Set_Find_Average_Overhead;
end Timer_Driver;

View File

@@ -0,0 +1,81 @@
--
-- Timer_Driver / Specification
--
-- Description:
--
-- This package is the specification for the Timer Driver.
--
-- 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;
package Timer_Driver is
--
-- Initialize
--
-- Description:
--
-- This subprogram initializes the hardware timer to start it.
--
procedure Initialize;
pragma Import (C, Initialize, "Timer_initialize");
--
-- Read_Timer
--
-- Description:
--
-- This subprogram stops the timer, calculates the length of time
-- in microseconds since the timer was started, and returns that
-- value.
--
function Read_Timer
return RTEMS.Unsigned32;
pragma Import (C, Read_Timer, "Read_timer");
--
-- Empty_Function
--
-- Description:
--
-- This subprogram is an empty subprogram. It is used to
-- insure that a loop will be included in the final executable
-- so that loop overhead can be subtracted from the directive
-- times reported.
--
procedure Empty_Function;
pragma Import (C, Empty_Function, "Empty_function");
--
-- Set_Find_Average_Overhead
--
-- Description:
--
-- This subprogram sets the Find_Average_Overhead flag to the
-- the value passed.
--
procedure Set_Find_Average_Overhead (
Find_Flag : in Standard.Boolean
);
private
end Timer_Driver;