Commit 83700a5f authored by jhugues's avatar jhugues

* Update property sets to AADLv2.1

        * Ocarina.Property_Sets: add Modeling_Properties as predefined
          set

        * Ocarina.Instances.Queries: work-around for Get_List_Property
          not returning list in case the list is an enumeration list

        * Update reference outputs



git-svn-id: https://tecsw.estec.esa.int/svn/taste/trunk/ocarina@4964 129961e7-ef38-4bb5-a8f7-c9a525a55882
parent 0e4081f8
model.aadl:85:04: Warning: source_language is not a list while the corresponding property name at programming_properties.aadl:61:02 is a list.
model.aadl:85:04: Warning: The value of source_language has been converted into a list.
model.aadl:92:04: Warning: source_language is not a list while the corresponding property name at programming_properties.aadl:61:02 is a list.
model.aadl:92:04: Warning: The value of source_language has been converted into a list.
model.aadl:99:04: Warning: source_language is not a list while the corresponding property name at programming_properties.aadl:61:02 is a list.
model.aadl:99:04: Warning: The value of source_language has been converted into a list.
pok_safety execution
requirement : check_error_handling
-------------------------------------
......
--******************************************************
-- AADL Standard AADL_V2.0
-- Appendix A (normative)
-- Predeclared Property Sets
-- 07Juin08
--******************************************************
--AADL2
--SAE Aerospace Standard AS5506A
--Proposed Draft (2008-11-08)
--Appendix A: Predeclared Property Sets
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,
Priority_Inheritance,
Immediate_Priority_Ceiling_Protocol,
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
Supported_Active_Thread_Handling_Protocols: type enumeration (abort);
Supported_Connection_Patterns: type enumeration
(One_To_One, All_To_All, One_To_All, All_To_One,
Next, Previous, Cyclic_Next, Cyclic_Previous);
Supported_Concurrency_Control_Protocols: type enumeration
(None_Specified,
Interrupt_Masking,
Maximum_Priority,
Immediate_Priority_Ceiling_Protocol,
Protected_Access,
Priority_Inheritance,
Priority_Ceiling,
Spin_Lock,
Semaphore);
Supported_Dispatch_Protocols: type enumeration (Periodic, Sporadic, Aperiodic, Timed, Hybrid, Background);
Supported_Queue_Processing_Protocols: type enumeration (Fifo);
Supported_Hardware_Source_Languages: type enumeration (VHDL);
Supported_Connection_QoS: type enumeration (GuaranteedDelivery, OrderedDelivery, SecureDelivery);
Supported_Scheduling_Protocols: type enumeration -- Updated for Cheddar
(SporadicServer, RMS, FixedTimeline,
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);
Supported_Source_Languages: type enumeration -- Updated for TASTE/Ocarina
(Ada95,
Ada, -- alias for Ada95
Ada05, -- alias for Ada95
ASN1,
Blackbox_Device,
C,
CPP, -- C++
CPP, -- C++
Esterel,
GUI,
LUA,
......@@ -115,28 +77,23 @@ property set AADL_Project is
VHDL,
ACN);
Supported_Distributions: type enumeration (Fixed);
-- The following are example distributions:
-- ( Fixed, Poisson )
Supported_Distributions: type enumeration (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.
Supported_Classifier_Substitutions: type enumeration (Classifier_Match, Type_Extension, Signature_Match);
Max_Aadlinteger: constant aadlinteger => 2#1#e61;
Data_Volume: type aadlinteger 0 bitsps .. Max_Data_Volume
units Data_Volume_Units;
Max_Data_Volume: constant aadlinteger units Data_Volume_Units => 2#1#e62 bitsps; -- XXX extended
Max_Aadlinteger: constant aadlinteger => 2#1#e32;
Max_Target_Integer: constant aadlinteger => 2#1#e32;
Max_Base_Address: constant aadlinteger => 2#1#e32;
Max_Memory_Size: constant Size => 2#1#e48 Bytes;
Max_Memory_Size: constant Size => 2#1#e32 Bytes;
Max_Queue_Size: constant aadlinteger => 512;
......@@ -146,27 +103,32 @@ property set AADL_Project is
Max_Urgency: constant aadlinteger => 12;
Max_Word_Count: constant aadlinteger => 2#1#e32;
Max_Byte_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.
bits,
Bytes => bits * 8,
KByte => Bytes * 1000,
MByte => KByte * 1000,
GByte => MByte * 1000,
TByte => GByte * 1000);
Time_Units: type units (
ps,
ns => ps * 1000,
us => ns * 1000,
ms => us * 1000,
sec => ms * 1000,
min => sec * 60,
hr => min * 60);
ps,
ns => ps * 1000,
us => ns * 1000,
ms => us * 1000,
sec => ms * 1000,
min => sec * 60,
hr => min * 60);
Data_Volume_Units: type units (
bitsps,
Bytesps => bitsps * 8,
KBytesps => Bytesps * 1000,
MBytesps => KBytesps * 1000,
GBytesps => MBytesps * 1000);
end AADL_Project;
......@@ -2,7 +2,6 @@
-- used as part of the ASSERT process.
package ASSERT_Types
public
with Data_Model;
......
--******************************************************
-- AADL Standard AADL_V2.0
-- Appendix A (normative)
-- Predeclared Property Sets
-- Communication_Properties
-- 07Juin08
--******************************************************
--AADL2
--SAE Aerospace Standard AS5506A
--Proposed Draft (2008-11-08)
--Appendix A: Predeclared Property Sets
property set Communication_Properties is
----------------------------------------------------
----------------------------------------------------
Fan_Out_Policy: enumeration (Broadcast,
RoundRobin,
OnDemand)
applies to (port);
----------------------------------------------------
Connection_Pattern:
list of Supported_Connection_Patterns
applies to (connection);
----------------------------------------------------
Connection_Set: list of Connection_Pair
applies to (connection);
----------------------------------------------------
Connection_Pair:
type record ( src: aadlinteger;
dst: aadlinteger;);
----------------------------------------------------
Overflow_Handling_Protocol: enumeration (DropOldest,
DropNewest,
Error)
=> DropOldest
applies to (event port,
event data port,
subprogram);
----------------------------------------------------
Queue_Processing_Protocol:
Supported_Queue_Processing_Protocols
=> FIFO
applies to (event port,
event data port,
subprogram);
----------------------------------------------------
Queue_Size: aadlinteger 0 .. Max_Queue_Size => 0
applies to (event port,
event data port,
subprogram);
----------------------------------------------------
Transmission_Type: enumeration ( push, pull )
applies to (port,
connection,
bus,
virtual bus);
----------------------------------------------------
Input_Rate: Rate_Spec
applies to (port, access);
----------------------------------------------------
Input_Time: IO_Time_Spec
applies to (port, access);
----------------------------------------------------
IO_Time_Spec : type record (
ReferencePoint : IO_Reference_Point_Type;
TimeOffset : TimeRange;
);
----------------------------------------------------
IO_Reference_Point_Type :
type enumeration ( DispatchTime,
StartTime,
CompletionTime,
DeadlineTime,
NoIO);
----------------------------------------------------
Output_Rate: Rate_Spec
applies to (port, access);
----------------------------------------------------
Output_Time: IO_Time_Spec
applies to (port, access);
----------------------------------------------------
-- XXX FIX : TO BE CHANGE BY FEILER
-- Rate_Spec : type record (
-- Value_Range : aadlreal units (perSecond, perDispatch);
-- Rate_Distribution : Supported_Distributions;
-- );
Rate_Spec : type record (rec: aadlinteger;);
----------------------------------------------------
Transmission_Time: list of Time_Range
applies to (bus);
----------------------------------------------------
Actual_Latency: Time_Range
applies to (flow);
----------------------------------------------------
Expected_Latency: Time_Range
applies to (flow);
----------------------------------------------------
Latency: Time_Range
applies to (flow, connection);
----------------------------------------------------
----------------------------------------------------
Fan_Out_Policy: enumeration (Broadcast, RoundRobin, Selective, OnDemand)
applies to (port);
-- XXX not supported by Ocarina
-- Connection_Pattern: list of list of Supported_Connection_Patterns
-- applies to (connection);
-- Connection_Set: list of Connection_Pair
-- applies to (connection);
-- Connection_Pair: type record (
-- src: list of aadlinteger;
-- dst: list of aadlinteger;);
Overflow_Handling_Protocol: enumeration (DropOldest, DropNewest, Error) => DropOldest
applies to (event port, event data port, subprogram access);
Queue_Processing_Protocol: Supported_Queue_Processing_Protocols => FIFO
applies to (event port, event data port, subprogram access);
Queue_Size: aadlinteger 0 .. Max_Queue_Size => 1
applies to (event port, event data port, subprogram access);
Required_Connection: aadlboolean => true
applies to (feature);
Timing: enumeration (sampled, immediate, delayed) => sampled
applies to (port connection);
Transmission_Type: enumeration (push, pull)
applies to (data port, port connection, bus, virtual bus);
Input_Rate: Rate_Spec => (Value_Range => 1.0 .. 1.0; Rate_Unit => PerDispatch; Rate_Distribution => Fixed;)
applies to (port);
Input_Time: list of IO_Time_Spec => ((Time => Dispatch; Offset => 0 ns .. 0 ns;))
applies to (port);
IO_Time_Spec: type record (
Offset: Time_Range;
Time: IO_Reference_Time;
);
IO_Reference_Time: type enumeration (Dispatch, Start, Completion, Deadline, NoIO);
Output_Rate: Rate_Spec => (Value_Range => 1.0 .. 1.0; Rate_Unit => PerDispatch; Rate_Distribution => Fixed;)
applies to (port);
Output_Time: list of IO_Time_Spec => ((Time => Completion; Offset => 0 ns .. 0 ns;))
applies to (port);
Rate_Spec: type record (
Value_Range: range of aadlreal;
Rate_Unit: enumeration (PerSecond, PerDispatch);
Rate_Distribution: Supported_Distributions;
);
Subprogram_Call_Rate: Rate_Spec => (Value_Range => 1.0 .. 1.0; Rate_Unit => PerDispatch; Rate_Distribution => Fixed;)
applies to (subprogram access);
Transmission_Time: record (
Fixed: Time_Range;
PerByte: Time_Range;)
applies to (bus);
Actual_Latency: Time_Range
applies to (flow, connection, bus, processor, device, port);
Latency: Time_Range
applies to (flow, connection, bus, processor, device, port);
end Communication_Properties;
\ No newline at end of file
--******************************************************
-- AADL Standard AADL_V2.0
-- Appendix A (normative)
-- Predeclared Property Sets
-- Deployment_Properties
-- 07Juin08
--******************************************************
--AADL2
--SAE Aerospace Standard AS5506A
--Proposed Draft (2008-11-08)
--Appendix A: Predeclared Property Sets
property set Deployment_Properties is
----------------------------------------------------
----------------------------------------------------
Device_Driver: classifier (abstract) applies to (device);
Allowed_Processor_Binding_Class:
inherit list of classifier (processor,
virtual processor,
system)
applies to (thread,
thread group,
process,
system,
virtual processor,
device);
----------------------------------------------------
Allowed_Processor_Binding:
inherit list of reference (processor,
virtual processor,
system)
applies to (thread,
thread group,
process,
system,
virtual processor,
device);
----------------------------------------------------
Actual_Processor_Binding:
inherit list of reference (processor,
virtual processor)
applies to (thread,
thread group,
process,
system,
virtual processor,
device);
----------------------------------------------------
Allowed_Memory_Binding_Class:
inherit list of classifier (memory,
system,
processor)
applies to (thread,
thread group,
process,
system,
device,
data,
data port,
event data port,
subprogram,
processor);
----------------------------------------------------
Allowed_Memory_Binding:
inherit list of reference (memory,
system,
processor)
applies to (thread,
thread group,
process,
system,
device,
data,
data port,
event data port,
subprogram,
processor);
----------------------------------------------------
Actual_Memory_Binding:
inherit list of reference (memory)
applies to (thread,
thread group,
process,
system,
processor,
device,
data,
data port,
event data port,
feature group,
subprogram);
----------------------------------------------------
Allowed_Connection_Binding_Class:
inherit list of classifier(processor,
virtual processor,
bus,
virtual bus,
device,
memory)
applies to (port,
connection,
thread,
thread group,
process,
system,
virtual bus);
----------------------------------------------------
Allowed_Connection_Binding:
inherit list of reference (processor,
virtual processor,
bus,
virtual bus,
device,
memory)
applies to (port,
connection,
thread group,
process,
system,
virtual bus);
----------------------------------------------------
Actual_Connection_Binding:
inherit list of reference (processor,
virtual processor,
bus,
virtual bus,
device,
memory)
applies to (port,
connection,
thread group,
process,
system,
virtual bus);
----------------------------------------------------
Allowed_Subprogram_Call:
list of reference (subprogram)
applies to (subprogram);
----------------------------------------------------
Actual_Subprogram_Call: reference (subprogram)
applies to (subprogram);
----------------------------------------------------
Allowed_Subprogram_Call_Binding:
inherit list of reference (bus,
processor,
device)
applies to (subprogram,
thread,
thread group,
process,
system);
----------------------------------------------------
Actual_Subprogram_Call_Binding:
inherit list of reference (bus,
processor,
memory,
device)
applies to (subprogram);
----------------------------------------------------
Provided_Virtual_Bus_Class :
inherit list of classifier (virtual bus)
applies to (bus,
virtual bus,
processor,
virtual processor,
device,
system);
----------------------------------------------------
Provided_Connection_Quality_Of_Service :
inherit list of Supported_Connection_QoS
applies to (bus,
virtual bus,
processor,
virtual processor,
system);
----------------------------------------------------
Required_Connection_Quality_Of_Service :
inherit list of Supported_Connection_QoS
applies to (port,
connection,
virtual bus);
----------------------------------------------------
Allowed_Connection_Type: