source: rtems/c/src/ada-tests/tmtests/tm19/tmtest.ads @ c499856

4.115
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on Mar 20, 2014 at 9:10:47 PM

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1--
2--  TMTEST / SPECIFICATION
3--
4--  DESCRIPTION:
5--
6--  This package is the specification for Test 19 of the RTEMS
7--  Timing Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-2011.
14--  On-Line Applications Research Corporation (OAR).
15--
16--  The license and distribution terms for this file may in
17--  the file LICENSE in this distribution or at
18--  http://www.rtems.org/license/LICENSE.
19--
20
21with RTEMS;
22with RTEMS.TASKS;
23
24package TMTEST is
25
26--
27--  This array contains the IDs of all RTEMS tasks created by this test.
28--
29
30   TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
31
32--
33--  The following variable is set to the execution time returned
34--  by the timer.
35--
36
37   END_TIME       : RTEMS.UNSIGNED32;
38
39--
40--  INIT
41--
42--  DESCRIPTION:
43--
44--  This RTEMS task initializes the application.
45--
46
47   procedure INIT (
48      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
49   );
50   pragma Convention (C, INIT);
51
52--
53--  PROCESS_ASR_FOR_PASS_1
54--
55--  DESCRIPTION:
56--
57--  This subprogram is the ASR used to measure and report the
58--  execution time of a SIGNAL_SEND to SELF.  Before it exits
59--  it starts the timer so that the execution time required to
60--  exit from an ASR back to the same task can be measured.
61--
62
63   procedure PROCESS_ASR_FOR_PASS_1 (
64      SIGNALS : in     RTEMS.SIGNAL_SET
65   );
66   pragma Convention (C, PROCESS_ASR_FOR_PASS_1);
67
68--
69--  PROCESS_ASR_FOR_PASS_2
70--
71--  DESCRIPTION:
72--
73--  This subprogram is the ASR which sets up for a preemptive
74--  return from an ASR.  Before it exits it starts the timer
75--  so that the execution time required to exit from an ASR
76--  and transfer control to the another task can be measured.
77--
78
79   procedure PROCESS_ASR_FOR_PASS_2 (
80      SIGNALS : in     RTEMS.SIGNAL_SET
81   );
82   pragma Convention (C, PROCESS_ASR_FOR_PASS_2);
83
84--
85--  TASK_1
86--
87--  DESCRIPTION:
88--
89--  This RTEMS task is responsible for measuring and reporting
90--  the following execution times:
91--
92--    + SIGNAL_CATCH
93--    + non-preemptive SIGNAL_SEND
94--    + non-preemptive return from an ASR
95--
96
97   procedure TASK_1 (
98      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
99   );
100   pragma Convention (C, TASK_1);
101
102--
103--  PROCESS_ASR_FOR_TASK_2
104--
105--  DESCRIPTION:
106--
107--  This subprogram is the ASR for TASK_2.  It performs no actions.
108--
109
110   procedure PROCESS_ASR_FOR_TASK_2 (
111      SIGNALS : in     RTEMS.SIGNAL_SET
112   );
113   pragma Convention (C, PROCESS_ASR_FOR_TASK_2);
114
115--
116--  TASK_2
117--
118--  DESCRIPTION:
119--
120--  This RTEMS task is used as the recipient of a SIGNAL_SEND.
121--  After establishing an ASR, it suspends itself to insure
122--  that it does not execute again.
123--
124
125   procedure TASK_2 (
126      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
127   );
128   pragma Convention (C, TASK_2);
129
130--
131--  TASK_3
132--
133--  DESCRIPTION:
134--
135--  This RTEMS task is used as the recipient of a preemptive
136--  SIGNAL_SEND.  This task suspends itself and is resumed by
137--  an ASR for TASK_1.  Once the task executes, it stops the
138--  timer and reports the execution time for a preemptive
139--  return from an ASR.
140--
141
142   procedure TASK_3 (
143      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
144   );
145   pragma Convention (C, TASK_3);
146
147end TMTEST;
Note: See TracBrowser for help on using the repository browser.