1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167 | ------------------------------------------------------------------------------
-- --
-- POSIX.5b VALIDATION TEST SUITE --
-- --
-- P 9 9 0 0 d o c --
-- --
-- S p e c --
-- --
-- --
-- Copyright (c) 1998 Florida State University (FSU). All Rights --
-- Reserved. --
-- --
-- This is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 2, or (at your option) any later --
-- version. This software is distributed in the hope that it will be --
-- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
-- General Public License for more details. You should have received a --
-- copy of the GNU General Public License distributed with GNARL; see --
-- file COPYING. If not, write to the Free Software Foundation, 59 --
-- Temple Place - Suite 330, Boston, MA 02111-1307, USA. --
-- --
-- Under contract GS-35F-4506G, the U. S. Government obtained unlimited --
-- rights in the software and documentation contained herein. Unlimited --
-- rights are defined in DFAR 252,227-7013(a)(19). By making this public --
-- release, the Government intends to confer upon all recipients --
-- unlimited rights equal to those held by the Government. These rights --
-- include rights to use, duplicate, release or disclose the released --
-- data an computer software in whole or in part, in any manner and for --
-- any purpose whatsoever, and to have or permit others to do so. --
-- --
-- DISCLAIMER -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE --
-- AVAILABLE OR DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR --
-- IMPLIED WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS --
-- OF THE SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE --
-- AVAILABLE OR DISCLOSED, OR THE OWNERSHIP, MECHANTABILITY, OR FITNESS --
-- FOR A PARTICULAR PURPOSE OF SAID MATERIAL. --
-- --
------------------------------------------------------------------------------
-- [$Revision: 1.3 $]
-- This package is a dummy, just to hold comments that apply to all
-- of the P9900** series of tests.
-- Each of these tests runs a set of periodic tasks or processes
-- that serially share access to an "I/O" object.
-- The tests differ by the mechanisms that they use for:
-- concurrency & priority scheduling
-- timing control
-- mutual exclusion and synchronization
-- access to shared data
-- This set of tests comprises the following files:
-- Common components, used by all P9900** tests
-- -----------------
-- P990000.ads common declarations
-- P990000.adb
-- P9900x0.ads generic main program
-- P9900x0.adb
-- Mutual exclusion
-- ----------------
-- P990001a.ads mutual exclusion, using Ada protected objects
-- P990001a.adb
-- P990001b.ads mutual exclusion, using POSIX mutexes and condition variables
-- P990001b.adb
-- P990001c.ads mutual exclusion, using POSIX named semaphores
-- P990001c.adb
-- Timing Control
-- --------------
-- P990002a.ads scheduling, using Ada clock and delay until statement
-- P990002a.adb
-- P990002b.ads scheduling, using POSIX Clock_Realtime and Timed_Wait on a CV
-- P990002b.adb
-- P990002c.ads scheduling, using POSIX_Calendar.Clock and Timed_Wait on a CV
-- P990002c.adb
-- Access to Shared Data
-- ---------------------
-- P990003a.ads shared variable stuff, single process w/local memory
-- P990003a.adb
-- P990003b.ads shared variable stuff, multiple processes w/memory mapping
-- P990003b.adb
-- Tests (N = 1 .. 4)
-- -----
-- P9900N0a.ads components of test P990010
-- P9900N0.ads main program of test
-- P9900N0.adb
-- P9900N0b.ads main program of child process, if applicable
-- The tests that use processes (instead of tasks)
-- for concurrency need to have the executable file for the
-- child process available in the process working directory
-- when the test program is run. The name of the child
-- process executable file is the name of the parent with
-- the letter "b" appended to the name. For example, for
-- test p990040 you need program p990040b for the child.
-- Conflict Matrix
---------------------------------------------------------------------------
-- p p p p p p p p p p p p
-- 9 9 9 9 9 9 9 9 9 9 9 9
-- 9 9 9 9 9 9 9 9 9 9 9 9
-- 0 0 0 0 0 0 0 0 0 0 0 0
-- 0 x x 0 0 0 0 0 0 0 0 0
-- 0 0 0 1 1 1 2 2 2 2 3 3
-- * a b c a b c d a b
-----------------------------------------------------------------------------
-- P990000 common declarations
-- P9900x0 generic mains
-- P9900x0* X *child_main
-----------------------------------------------------------------------------
-- P990001a X X X protected objects
-- P990001b X X X basic mutexes and CVs
-- P990001c X X named semaphores
-----------------------------------------------------------------------------
-- P990002a X X X clock and delay
-- P990002b X X X Clock_Realtime and Timed_Wait
-- P990002c X X X POSIX_Calendar.Clock and delay
-- P990002d X X X Ada.Real_Time.Clock and Timed_Wait
-----------------------------------------------------------------------------
-- P990003a X X local memory
-- P990003b X X X shared memory
-----------------------------------------------------------------------------
-- Use Matrix
---------------------------------------------------------------------------
-- p p p p p p p p p p
-- 9 9 9 9 9 9 9 9 9 9
-- 9 9 9 9 9 9 9 9 9 9
-- 0 0 0 0 0 0 0 0 0 0
-- 0 0 0 0 0 0 0 0 0 0
-- 1 2 3 4 5 6 7 8 9 1
-- 0 0 0 0 0 0 0 0 0 1
---------------------------------------------------------------------------
-- P990000 X X X X X X X X X X common declarations
-- P9900x0 X X X X X X X X X X generic mains
-- P9900x0* X X *child_main
---------------------------------------------------------------------------
-- P990001a X X X X protected objects
-- P990001b X X X basic mutexes and CVs
-- P990001c X X X named semaphores
---------------------------------------------------------------------------
-- P990002a X X X X clock and delay
-- P990002b X X Clock_Realtime and Timed_Wait
-- P990002c X X POSIX_Calendar.Clock and Timed_Wait
-- P990002d X X Ada.Real_Time.Clock and delay
---------------------------------------------------------------------------
-- P990003a X X X X X X X X local memory
-- P990003b X X shared memory
---------------------------------------------------------------------------
package P9900doc is
end P9900doc;
|