forked from Imagelibrary/rtems
102 lines
2.1 KiB
Ada
102 lines
2.1 KiB
Ada
--
|
|
-- TMTEST / SPECIFICATION
|
|
--
|
|
-- DESCRIPTION:
|
|
--
|
|
-- This package is the specification for Test 11 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
|
|
|
|
--
|
|
-- The following is the ID of the message queue used for timing operations.
|
|
--
|
|
|
|
QUEUE_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
|
|
);
|
|
|
|
--
|
|
-- TEST_INIT
|
|
--
|
|
-- DESCRIPTION:
|
|
--
|
|
-- This subprogram performs test initialization. As each application
|
|
-- task is created and started, it will preempt this task and
|
|
-- perform a blocking MESSAGE_QUEUE_RECEIVE. Once all of the
|
|
-- initialization is completed, the timer is started and the first
|
|
-- preemptive MESSAGE_QUEUE_SEND is executed.
|
|
--
|
|
|
|
procedure TEST_INIT (
|
|
ARGUMENT : in RTEMS.TASK_ARGUMENT
|
|
);
|
|
|
|
--
|
|
-- HIGH_TASK
|
|
--
|
|
-- DESCRIPTION:
|
|
--
|
|
-- This RTEMS task is the highest priority task in the system.
|
|
-- It performs a blocking blocking MESSAGE_QUEUE_RECEIVE. It is
|
|
-- the last test task created and started. Thus it is the last
|
|
-- task to be enqueued waiting for a message and the last task
|
|
-- to receive the message. Once it receives the message, it
|
|
-- stops the timer and reports the execution time for a
|
|
-- preemptive MESSAGE_QUEUE_SEND.
|
|
--
|
|
|
|
procedure HIGH_TASK (
|
|
ARGUMENT : in RTEMS.TASK_ARGUMENT
|
|
);
|
|
|
|
--
|
|
-- MIDDLE_TASKS
|
|
--
|
|
-- DESCRIPTION:
|
|
--
|
|
-- As each of these RTEMS tasks is created and started, it preempts
|
|
-- the initialization task and perform a blocking MESSAGE_QUEUE_RECEIVE.
|
|
--
|
|
|
|
procedure MIDDLE_TASKS (
|
|
ARGUMENT : in RTEMS.TASK_ARGUMENT
|
|
);
|
|
|
|
end TMTEST;
|