source: rtems/c/src/ada-tests/tmtests/tm13/tmtest.ads @ bf9ae83

4.104.114.84.95
Last change on this file since bf9ae83 was bf9ae83, checked in by Joel Sherrill <joel.sherrill@…>, on 06/02/97 at 20:32:11

modified copyright notice to be the same as RTEMS 4.0.0.

changed the CVS ID string to be a "development" version.

  • Property mode set to 100644
File size: 3.7 KB
RevLine 
[6d4e604b]1--
2--  TMTEST / SPECIFICATION
3--
4--  DESCRIPTION:
5--
6--  This package is the specification for Test 13 of the RTEMS
7--  Timing Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
[bf9ae83]13--  COPYRIGHT (c) 1989-1997.
[6d4e604b]14--  On-Line Applications Research Corporation (OAR).
[bf9ae83]15--  Copyright assigned to U.S. Government, 1994.
[6d4e604b]16--
[bf9ae83]17--  The license and distribution terms for this file may in
18--  the file LICENSE in this distribution or at
19--  http://www.OARcorp.com/rtems/license.html.
[6d4e604b]20--
[bf9ae83]21--  $Id$
[6d4e604b]22--
23
24with TIMER_DRIVER;
25with RTEMS;
26
27package TMTEST is
28
29--
30--  The following is the ID of the message queue used for timing operations.
31--
32
33   QUEUE_ID : RTEMS.ID;
34
35--
36--  The following variable is set to the execution time returned
37--  by the timer.
38--
39
40   END_TIME  : RTEMS.UNSIGNED32;
41
42--
43--  INIT
44--
45--  DESCRIPTION:
46--
47--  This RTEMS task initializes the application.
48--
49
50   procedure INIT (
51      ARGUMENT : in     RTEMS.TASK_ARGUMENT
52   );
53
54--
55--  TEST_INIT
56--
57--  DESCRIPTION:
58--
59--  This subprogram performs test initialization.  As each application
60--  task is created and started, it will preempt this task and
61--  perform a blocking MESSAGE_QUEUE_RECEIVE.  Once all of the
62--  initialization is completed, the timer is started and the first
63--  preemptive MESSAGE_QUEUE_URGENT is executed.
64--
65
66   procedure TEST_INIT (
67      ARGUMENT : in     RTEMS.TASK_ARGUMENT
68   );
69
70--
71--  HIGH_TASK
72--
73--  DESCRIPTION:
74--
75--  This RTEMS task is the highest priority task in the system. 
76--  It performs a blocking blocking MESSAGE_QUEUE_RECEIVE.  It is
77--  the last test task created and started.  Thus it is the last
78--  task to be enqueued waiting for a message and the last task
79--  to receive the message.  Once it receives the message, it
80--  stops the timer and reports the execution time for a
81--  preemptive MESSAGE_QUEUE_URGENT.
82--
83
84   procedure HIGH_TASK (
85      ARGUMENT : in     RTEMS.TASK_ARGUMENT
86   );
87
88--
89--  MIDDLE_TASKS
90--
91--  DESCRIPTION:
92--
93--  As each of these RTEMS tasks is created and started, it preempts
94--  the initialization task and perform a blocking MESSAGE_QUEUE_RECEIVE.
95--
96
97   procedure MIDDLE_TASKS (
98      ARGUMENT : in     RTEMS.TASK_ARGUMENT
99   );
100
101--
102--  This is the Initialization Tasks Table for this test.
103--
104
105   INITIALIZATION_TASKS : aliased RTEMS.INITIALIZATION_TASKS_TABLE( 1 .. 1 ) :=
106   (1=>
107     (
108       RTEMS.BUILD_NAME( 'U', 'I', '1', ' ' ),        -- task name
109       2048,                                          -- stack size
110       1,                                             -- priority
111       RTEMS.DEFAULT_ATTRIBUTES,                      -- attributes
112       TMTEST.INIT'ACCESS,                            -- entry point
113       RTEMS.NO_PREEMPT,                              -- initial mode
114       0                                              -- argument list
115     )
116   );
117
118--
119--  This is the Configuration Table for this test.
120--
121
122   CONFIGURATION : aliased RTEMS.CONFIGURATION_TABLE := (
123      RTEMS.NULL_ADDRESS,        -- will be replaced by BSP
124      256 * 1024,                -- executive RAM size
125      111,                       -- maximum # tasks
126      0,                         -- maximum # timers
127      0,                         -- maximum # semaphores
128      1,                         -- maximum # message queues
129      100,                       -- maximum # messages
130      0,                         -- maximum # partitions
131      0,                         -- maximum # regions
132      0,                         -- maximum # dp memory areas
133      0,                         -- maximum # periods
134      0,                         -- maximum # user extensions
135      RTEMS.MILLISECONDS_TO_MICROSECONDS(10), -- # us in a tick
136      0                          -- # ticks in a timeslice
137  );
138
139end TMTEST;
Note: See TracBrowser for help on using the repository browser.