aadl_project.aadl 5.28 KB
Newer Older
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
--******************************************************
--  AADL Standard AADL_V2.0
--  Appendix A (normative)
--  Predeclared Property Sets
--  07Juin08
--******************************************************

property set AADL_Project is

  Supported_Active_Thread_Handling_Protocols: 
    type enumeration (abort,
                      test);
  -- The following are other example protocols.
  -- (complete_one_flush_queue, complete_one_transfer_queue,
  -- complete_one_preserve_queue, complete_all);

  Supported_Connection_Patterns: 
    type enumeration ( One_To_One,
                       All_To_All,
                       One_To_All,
                       All_To_One,
                       Next,
                       Previous,
                       Neighbors,
                       All_Neighbors);
  -- The Supported_Connection_Patterns property enumeration type 
  -- specifies the set of patterns that are supported to connect 
  -- together a source port array and a destination port array.

  Supported_Concurrency_Control_Protocols: 
    type enumeration (NoneSpecified,
                      Read_Only,
33
34
                      Priority_Inheritance,
                      Immediate_Priority_Ceiling_Protocol,
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
                      Protected_Access,
                      Priority_Ceiling_Protocol,
                      Priority_Ceiling);
  -- The following are example concurrency control protocols:
  -- (Interrupt_Masking, Maximum_Priority, Priority_Inheritance,
  -- Priority_Ceiling)

  Supported_Dispatch_Protocols: 
    type enumeration (Periodic,
                      Aperiodic,
                      Sporadic,
                      Timed,
		      Hybrid,
                      Background);
  -- The following are protocols for which the semantics are defined:
  -- (Periodic, Sporadic, Aperiodic, Timed, Hybrid, Background);

  Supported_Hardware_Source_Languages: 
    type enumeration (VHDL);
  -- The following is an example hardware description language:
  -- (VHDL)

  -- XXX FIX ADD WAITING Peter FEILER
  Supported_Queue_Processing_Protocols: type enumeration
    (FIFO);
  -- The Supported_Queue_Processing_Protocols property enumeration
  -- type specifies the set of queue processing protocols that are
  -- supported.
 
  Supported_Connection_QoS : 
    type enumeration (GuaranteedDelivery, 
                      OrderedDelivery,
                      SecureDelivery);
  -- The Supported_QoS property specifies the quality of services .

  Supported_Scheduling_Protocols: type enumeration
    (PARAMETRIC_PROTOCOL,
     EARLIEST_DEADLINE_FIRST_PROTOCOL,
     LEAST_LAXITY_FIRST_PROTOCOL,
     RATE_MONOTONIC_PROTOCOL,
     DEADLINE_MONOTONIC_PROTOCOL,
     ROUND_ROBIN_PROTOCOL,
     TIME_SHARING_BASED_ON_WAIT_TIME_PROTOCOL,
     POSIX_1003_HIGHEST_PRIORITY_FIRST_PROTOCOL,
     D_OVER_PROTOCOL,
     MAXIMUM_URGENCY_FIRST_BASED_ON_LAXITY_PROTOCOL,
     MAXIMUM_URGENCY_FIRST_BASED_ON_DEADLINE_PROTOCOL,
     TIME_SHARING_BASED_ON_CPU_USAGE_PROTOCOL,
     NO_SCHEDULING_PROTOCOL,
     HIERARCHICAL_CYCLIC_PROTOCOL,
     HIERARCHICAL_ROUND_ROBIN_PROTOCOL,
     HIERARCHICAL_FIXED_PRIORITY_PROTOCOL,
     HIERARCHICAL_PARAMETRIC_PROTOCOL);
  -- The following are examples of scheduling protocols:
  -- (RMS, EDF, Sporadicserver, SlackServer, ARINC653)

  Supported_Source_Languages: type enumeration
    (Ada95,
     Ada,     -- alias for Ada95
     Ada05,   -- alias for Ada95
     ASN1,
     C,
julien.delange's avatar
julien.delange committed
97
     Blackbox_Device,
98
     Esterel,
maxime1008's avatar
maxime1008 committed
99
     GUI,
100
101
102
     Lustre,
     Lustre5, -- alias for Lustre
     Lustre6, -- alias for Lustre
103
104
     RTDS,    -- alias for SDL_RTDS
     SDL_RTDS,
105
106
     RTSJ,    -- Real Time Specification for Java
     SCADE6,  -- alias for Lustre
107
108
     SDL,     -- alias for SDL_ObjectGeode
     SDL_ObjectGeode,
109
110
     Scade,
     Simulink,
111
112
     Simulink_6_5,
     System_C,
113
114
     VHDL,
     ACN);
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134

  Supported_Distributions: type enumeration (Fixed);
  -- The following are example distributions:
  -- ( Fixed, Poisson )

  Data_Volume: type aadlinteger 0 bitsps .. Max_Aadlinteger
  units ( bitsps, 
          Bytesps => bitsps * 8,
          KBytesps => Bytesps * 1000,
          MBytesps => KBytesps * 1000,
          GBytesps => MBytesps * 1000 );
  -- The Data_Volume property type specifies a property type for the
  -- volume of data per time unit. The predeclared unit literals are
  -- expressed in terms of seconds as time unit. The numeric value
  -- of the property must be positive.

  Max_Aadlinteger: constant aadlinteger => 2#1#e32;

  Max_Target_Integer: constant aadlinteger => 2#1#e32;

135
  Max_Base_Address: constant aadlinteger => 2#1#e32;
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
168
169

  Max_Memory_Size: constant Size => 2#1#e32 Bytes;

  Max_Queue_Size: constant aadlinteger => 512;

  Max_Thread_Limit: constant aadlinteger => 32;

  Max_Time: constant Time => 1000 hr;

  Max_Urgency: constant aadlinteger => 12;

  Max_Word_Count: constant aadlinteger => 2#1#e32;

  Max_Word_Space: constant aadlinteger => 64;

  Size_Units: type units (
    bits, 
    Bytes  => bits  * 8, 
    KByte  => Bytes * 1000,
    MByte  => KByte * 1000, 
    GByte  => MByte * 1000,
    TByte  => GByte * 1000);
  -- Note: B, KB, etc. in AADL 2004 have been replaced by Byte, Kbyte etc. in AADL V2. 

  Time_Units: type units (
    ps, 
    ns  => ps  * 1000, 
    us  => ns  * 1000, 
    ms  => us  * 1000,
    sec => ms  * 1000, 
    min => sec * 60, 
    hr  => min * 60);

end AADL_Project;