aadl_project.aadl 5.31 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
                      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,
julien.delange's avatar
julien.delange committed
96
     Blackbox_Device,
97
98
     C,
     CPP,     -- C++     
99
     Esterel,
maxime1008's avatar
maxime1008 committed
100
     GUI,
101
102
103
     Lustre,
     Lustre5, -- alias for Lustre
     Lustre6, -- alias for Lustre
104
105
     RTDS,    -- alias for SDL_RTDS
     SDL_RTDS,
106
107
     RTSJ,    -- Real Time Specification for Java
     SCADE6,  -- alias for Lustre
108
109
     SDL,     -- alias for SDL_ObjectGeode
     SDL_ObjectGeode,
110
111
     Scade,
     Simulink,
112
113
     Simulink_6_5,
     System_C,
114
115
     VHDL,
     ACN);
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135

  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;

136
  Max_Base_Address: constant aadlinteger => 2#1#e32;
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158

  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);
159
160
  -- Note: B, KB, etc. in AADL 2004 have been replaced by Byte, Kbyte
  -- etc. in AADL V2.
161
162
163
164
165
166
167
168
169
170
171

  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;