A.8 Project-Specific Property Set
(1) There is a set of enumeration property types and property constants for which enumeration literals and property constant values can be defined for different systems modeled in AADL. This set of property types is declared in a property set named AADL_Project. All of the property enumeration types listed in this section must be declared in this property set. The set of enumeration literals may vary. This property set is a part of every AADL specification.
(2) The set of values for the property types in this property set are to be provided by tool suppliers for the AADL and can be tailored by AADL users on a project by project basis to reflect those capabilities provided by tool suppliers that are actually being made use of in a particular project.
NOTES:
The label <project-specified> indicates that actual values are to be supplied by the person providing a project-specific property set. The actual values do not include the < and > symbols.
Property set AADL_Project is
Supported_Active_Thread_Handling_Protocols: type enumeration (abort, <project-specified>); -- The following are other example protocols. -- (suspend, complete_one, complete_all); The Supported_Active_Thread_Handling_Protocols property enumeration type specifies the set of possible actions that can be taken to handle threads that are in the state of performing computation at the time instant of actual mode switch. |
Supported_Connection_Patterns: type enumeration ( One_To_One, All_To_All, One_To_All, All_To_One, Next, Previous, Cyclic_Next, Cyclic_Previous ); The Supported_Connection_Patterns property enumeration type specifies the set of patterns that are supported to connect together a source component array and a destination component array. One_To_One represents the case when each item of the source component array is connected to the corresponding item of the destination component array. This property can only be used if the source and the destination component arrays of the connection have the same dimension and same dimension size. All_To_All represents the case when each item of the source component array is connected to each item of the destination component array. A Next or Previous value indicates that elements of the ultimate source array dimension are connected to the next (previous) element in the ultimate destination array dimension without wrapping between the first and last. A Cyclic_Next or Cyclic_Previous value indicates that elements of the ultimate source array dimension are connected to the next (previous) element in the ultimate destination array dimension. A One_to_All value indicates that a single element of the ultimate source has a semantic connection to each element in the ultimate destination. A All_to_One value indicates that each array element of the ultimate source has a semantic connection to a single element in the ultimate destination. |
Supported_Concurrency_Control_Protocols: type enumeration (None_Specified, Interrupt_Masking, Maximum_Priority, Priority_Inheritance, -- Priority_Ceiling, Spin_Lock, Semaphore, <project-specified>); -- The following are example concurrency control protocols: -- (Interrupt_Masking, Maximum_Priority, Priority_Inheritance, -- Priority_Ceiling, Spin_Lock, Semaphore) The Supported_Concurrency_Control_Protocols property enumeration type specifies the set of concurrency control protocols that are supported. |
Supported_Dispatch_Protocols: type enumeration (Periodic, Sporadic, Aperiodic, Timed, Hybrid, Background, <project-specified>); -- The following are protocols for which the semantics are defined: -- (Periodic, Sporadic, Aperiodic, Timed, Hybrid, Background); The Supported_Dispatch_Protocols property enumeration type specifies the set of thread dispatch protocols that are supported. Periodic represents periodic dispatch of threads with deadlines. Sporadic represents event-triggered dispatching of threads with soft deadlines. Aperiodic represents event-triggered dispatch of threads with hard deadlines. Timed represents threads that are dispatched after a given time unless they are dispatched by arrival of an event or event data. Hybrid represents threads that are dispatched by both an event or event data arrival and periodically. Background represents threads that are dispatched once and execute until completion. The Period is required for Periodic, Timed, and Hybrid threads.
|
Supported_Queue_Processing_Protocols: type enumeration (Fifo, <project-specified>); The Supported_Queue_Processing_Protocols property enumeration type specifies the set of queue processing protocols that are supported. Fifo represents first-in first-out processing of queues. Other prototcols are project specific. |
Supported_Hardware_Source_Languages: type enumeration (VHDL, <project-specified>); -- The following is an example hardware description language: -- (VHDL) The Supported_Hardware_Source_Languages property enumeration type specifies the set of hardware description languages that are supported. |
Supported_Connection_QoS : type enumeration (GuaranteedDelivery, OrderedDelivery, SecureDelivery, <project specific>); The Supported_Connection_QoS property specifies the quality of services. |
Supported_Scheduling_Protocols: type enumeration (FixedTimeline, Cooperative, RMS, EDF, SporadicServer, SlackServer, ARINC653, <project-specified>); -- The following are examples of scheduling protocols: -- (FixedTimeline, Cooperative, RMS, EDF, SporadicServer, SlackServer, ARINC653) The Supported_Scheduling_Protocols property enumeration type specifies the set of scheduling protocols that are supported. Scheduling protocols that can be provided by implementers include: · None (single thread). · Interrupt-driven (handling of interrupt service routines (ISR)). · For periodic task sets: fixed timeline, cooperative (cyclic executive), deadline monotonic, least laxity. · For hybrid task set: ▪ Fixed priority server based on Rate Monotonic Scheduling (RMS) (polling server, deferrable server, sporadic server, slack stealer). ▪ Dynamic priority server based on Earliest Deadline First (EDF) (dynamic polling server, dynamic deferrable server, dynamic sporadic server, total bandwidth server, constant bandwidth server). Scheduling protocols have a policy for scheduling periodic threads, for aperiodic/sporadic threads, and for background threads. In the case of RMS, the periodic thread policy is priority assignment according to decreasing rate, aperiodic and sporadic threads according to their minimum inter-arrival time, and background as FIFO. Others have similar characteristics. |
Supported_Source_Languages: type enumeration (Ada95, Ada2005, C, Simulink_6_5, <project-specified>); -- The following are example software source languages: -- ( Ada95, Ada2005, C, Simulink_6_5 ) The Supported_Source_Languages property enumeration type specifies the set of software source languages that are supported. |
Supported_Distributions: type enumeration (Fixed, Poisson, <project-specified>); -- The following are example distributions: -- ( Fixed, Poisson ) The Supported_Distribution property enumeration type specifies the set of distribution functions that are supported. |
Supported_Classifier_Substitutions: type enumeration (Classifier_Match, Type_Extension, Signature_Match, <project-specified>); The Supported_Classifier_Substitutions property enumeration type specifies the set of classifier substitutions that are supported for prototypes and refinement declarations. Three kinds of substitutions are defined as part of the standard. A candidate for additional substitution rules signature matching with name mapping. |
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. Note: Conversion factor of 1000 consistent with ISO. |
Max_Aadlinteger: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Aadlinteger specifies the largest machine representable integer value that may be used as the maximum value in property associations. This property does not specify the maximum integer representation on a target processor. |
Max_Target_Integer: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Target_Integer specifies the largest machine representable integer value on a target processor.
|
Max_Base_Address: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Base_Address specifies the maximum value that can be declared in for the Base_Address property. |
Max_Memory_Size: constant Size => <project-specified-aadl-integer> <Size_Units_Literal>; The property constant Max_Memory_Size specifies the maximum memory size that can be declared in for the Size property, expressed in the specified unit of Size. |
Max_Queue_Size: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Queue_Size specifies the maximum value that can be declared in for the Queue_Size property.
|
Max_Thread_Limit: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Thread_Limit specifies the maximum value that can be declared in for the Thread_Limit property. |
Max_Time: constant Time => <project-specified-integer-literal>; The property constant Max_Time specifies the maximum value that can be declared in for the Time property, expressed in the specified unit of Time. |
Max_Urgency: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Urgency specifies the maximum value that can be declared in for the Urgency property. |
Max_Byte_Count: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Byte_Count specifies the maximum value that can be declared in for the Byte_Count property. |
Max_Word_Space: constant aadlinteger => <project-specified-integer-literal>; The property constant Max_Word_Space specifies the maximum value that can be declared in for the Word_Space property. |
Size_Units: type units (bits, Bytes => bits * 8, KByte => Bytes* 1000, MByte => KByte* 1000, GByte => MByte * 1000, TByte => GByte * 1000 ); The type Size_Units defines a measurement of size that is available for use in other property definitions. Users may append to this type. Note: conversion factor of 1000 consistent with ISO/SI. Note: B, KB, etc. in AADL 2004 have been replaced by Byte, Kbyte etc. in AADL V2. Since AADL is case insensitive, Kb could have been interpreted a K bits rather than K bytes. Note: There is a proposal to add the binary units as defined by IEC, i.e., KiByte => Bytes * 1024, MiByte => KiByte * 1024, etc. |
Time_Units: type units (ps, ns => ps * 1000, us => ns * 1000, ms => us * 1000, sec => ms * 1000, min => sec * 60, hr => min * 60);
The type Time_Units defines a measurement of time that is available for use in other property definitions. Users may append to this type. |
end AADL_Project;