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
|
-- IMPDEFC.A
--
-- Grant of Unlimited Rights
--
-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
-- F08630-91-C-0015, and DCA100-97-D-0025, 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 technical data and 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, MERCHANTABILITY, OR FITNESS FOR A
-- PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--
-- DESCRIPTION:
-- This package provides tailorable entities for a particular
-- implementation. Each entity may be modified to suit the needs
-- of the implementation. Default values are provided to act as
-- a guide.
--
-- The entities in this package are those which are used exclusively
-- in tests for Annex C (Systems Programming).
--
-- APPLICABILITY CRITERIA:
-- This package is only required for implementations validating the
-- Systems Programming Annex.
--
-- CHANGE HISTORY:
-- 29 Jan 96 SAIC Initial version for ACVC 2.1.
--
--!
with Ada.Interrupts.Names;
package ImpDef.Annex_C is
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- Interrupt_To_Generate should identify a non-reserved interrupt
-- that can be predictably generated within a reasonable time interval
-- (as specified by the constant Wait_For_Interrupt) during testing.
Interrupt_To_Generate: constant Ada.Interrupts.Interrupt_ID :=
Ada.Interrupts.Interrupt_ID'First; -- to allow trivial compilation
-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --- MODIFY HERE AS NEEDED
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- Wait_For_Interrupt should specify the reasonable time interval during
-- which the interrupt identified by Interrupt_To_Generate can be
-- expected to be generated.
Wait_For_Interrupt : constant := 10.0;
-- ^^^^ --- MODIFY HERE AS NEEDED
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- The procedure Enable_Interrupts should enable interrupts, if this
-- is required by the implementation. [See additional notes on this
-- procedure in the package body.]
procedure Enable_Interrupts;
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- The procedure Generate_Interrupt should generate the interrupt
-- identified by Interrupt_To_Generate within the time interval
-- specified by Wait_For_Interrupt. [See additional notes on this
-- procedure in the package body.]
procedure Generate_Interrupt;
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
end ImpDef.Annex_C;
--==================================================================--
package body ImpDef.Annex_C is
-- NOTE: These are example bodies. It is expected that implementors
-- will write their own versions of these routines.
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- The procedure Enable_Interrupts should enable interrupts, if this
-- is required by the implementation.
--
-- The default body is null, since it is expected that most implementations
-- will not need to perform this step.
--
-- Note that Enable_Interrupts will be called only once per test.
procedure Enable_Interrupts is
begin
null;
-- ^^^^^^^^^^^^^^^^^^^^ MODIFY THIS BODY AS NEEDED ^^^^^^^^^^^^^^^^^^^^
end Enable_Interrupts;
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
-- The procedure Generate_Interrupt should generate the interrupt
-- identified by Interrupt_To_Generate within the time interval
-- specified by Wait_For_Interrupt.
--
-- The default body assumes that an interrupt will be generated by some
-- physical act during testing. While this approach is acceptable, the
-- interrupt should ideally be generated by appropriate code in the
-- procedure body.
--
-- Note that Generate_Interrupt may be called multiple times by a single
-- test. The code used to implement this procedure should account for this
-- possibility.
procedure Generate_Interrupt is
begin
Report.Comment (". >>>>> GENERATE THE INTERRUPT NOW <<<<< ");
-- ^^^^^^^^^^^^^^^^^^^^ MODIFY THIS BODY AS NEEDED ^^^^^^^^^^^^^^^^^^^^
end Generate_Interrupt;
--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
end ImpDef.Annex_C;
|