Next: , Previous: Standard AADL property files, Up: Top


Appendix B Ocarina AADL property files

Ocarina includes specific property files to specify some elements of the models that are not covered by AADL 1.0.

B.1 ARAO

     
     --  Property set for ARAO features
     
     property set ARAO is
     
       simple_type   : type enumeration
        (boolean,
         character,
         float,
         fixed,
         integer,
         null,
         string,
         wide_character,
         wide_string);
       --  Supported data types
     
       data_type     : simple_type applies to (data);
       --  Available data type
     
       data_digits   : aadlinteger applies to (data);
       data_scale    : aadlinteger applies to (data);
       --  Properties for fixed point types
     
       length    : aadlinteger applies to (data);
       --  Maximum length of bounded arrays
     
       max_length    : aadlinteger applies to (data);
       --  Maximum length for string data
     
       symbolic_values : list of aadlstring applies to (data);
       --  Special values for data defined following AADL standard specs
     
       location    : aadlstring applies to (processor);
       --  Processor network's address
     
       port_number : aadlinteger applies to (process);
       --  Port number used by a node
     
       process_id : aadlinteger applies to (process);
       --  Identifier of the process (used by SpaceWire)
     
       channel_address : aadlinteger applies to (process);
       --  SpaceWire channel address
     
       protocol_type : type enumeration (iiop, diop);
       --  Available communication protocol implementations
     
       protocol      : protocol_type applies to (system);
       --  Protocol implementation used for communications
       --  currently only support GIOP implementations
     
       priority_type : type aadlinteger 0 .. 255;
     
       priority      : priority_type applies to (data, thread);
       --  Thread and data component priority
     
       Level_A : constant priority_type => 250;
       Level_B : constant priority_type => 190;
       Level_C : constant priority_type => 130; --  Default
       Level_D : constant priority_type => 70;
       Level_E : constant priority_type => 10;
       --  Some predefined priorities
     
       --  Available platform to which applications can be generated.
       Allowed_Execution_Platform : type enumeration
        (Native,        -- For native platforms, e.g. GNU/Linux, Solaris, FreeBSD
         LEON_RTEMS,    -- For LEON boards or tsim-leon, using RTEMS
         LEON_ORK,      -- For LEON boards or tsim-leon, using GNAT executive
         ERC32_ORK,     -- For ERC32 boards or tsim-erc32, using GNAT executive
         ARM_DSLINUX,   -- For Nintendo DS (tm), using DSLinux
         ARM_N770       -- For Nokia N770
         );
     
       Execution_Platform : Allowed_Execution_Platform applies to (processor);
       --  The execution platform of a distributed application
     
       Allowed_Transport_APIs : type enumeration
         (BSD_Sockets,
          SpaceWire,
          Serial);
       --  Available transport APIs to send/receive data through a bus
     
       Transport_API : Allowed_Transport_APIs applies to (bus);
     
       IP_Address : access aadlstring applies to (bus);
       --  IPv4 address of a network card
     
       MAC_Address : access aadlstring applies to (bus);
       --  MAC id. of a network card
     
       Memory_Size : Size applies to (memory);
       --  Memory size 
     
     end ARAO;
     

B.2 Ocarina_Config

     
     --  Property set containing the configuration properties of Ocarina.
     --  This property set is not intended to be used by the AADL model of
     --  an application, but, by the AADL model of its scenario.
     
     property set Ocarina_Config is
     
       Generator_Type : type enumeration
        (PolyORB_QoS_Ada,
         PolyORB_HI_Ada,
         PolyORB_HI_C);
     
       Generator : Generator_Type applies to (system);
       --  The code generator that will be used for the current application
     
       AADL_Files : list of aadlstring applies to (system);
       --  List of the AADL source files used by the current application
     
       Ocarina_Property_Sets : type enumeration
         (ARAO,
          Cheddar_Properties,
          ASSERT_Properties);
       --  List of the predefined NON STANDARD property sets that can be used
       --  by an AADL application.
     
       Needed_Property_Sets : list of Ocarina_property_Sets applies to (system);
       --  The actual property sets needed by one particular application.
       --  This avoid to parse systematically all the predefined non 
       --  standard property sets.
     
     end Ocarina_Config;
     

B.3 ASSERT_Properties

     
     --  This AADL property set defines properties to be used to describe
     --  the different views that form the ASSERT process.
     
     property set ASSERT_Properties is
     
     ----------------------------
     -- Types and enumerations --
     ----------------------------
     
     Max_Priority_Value : constant aadlinteger => 28;
     --  Parametric example of maximum priority
     
     --  Priority and Interrupt Priority are contiguous intervals
     
     Min_Interrupt_Priority : constant aadlinteger => 29;
     Max_Interrupt_Priority : constant aadlinteger => 31;
     --  Maximum and minimum interrupt priority
     
     Priority_Type : type aadlinteger 0 .. value (Max_Priority_Value);
     --  We must define a property type to be able to reference it
     
     Priority : Priority_Type applies to
       (thread,
        thread group,
        process);
     
     Interrupt_Priority :  aadlinteger
       value(Min_Interrupt_Priority) .. value (Max_Interrupt_Priority) applies to
         (thread,
          thread group,
          process);
     
     Criticality_Level_Type : type enumeration (A, B, C, D, E);
     -- Criticality levels
     
     Transmission_Type : type enumeration
       (simplex,
        half_duplex,
        full_duplex);
     --  Message transmission kind
     
     Freq_Units : type units (
         Hz,
         KHz    => Hz  * 1000,
         MHz    => KHz * 1000,
         GHz    => MHz * 1000);
     --  Frequency units
     
     Max_Frequency : constant aadlinteger Freq_Units => 1000 GHz;
     --  Maximal Frequency
     
     Frequency : type aadlinteger 0 Hz .. value (Max_Frequency) units Freq_Units;
     --  Frequency of a processor
     
     ---------------
     -- Partition --
     ---------------
     
     Criticality : Criticality_Level_Type applies to (process, system);
     Local_Scheduling_Policy : Supported_Scheduling_Protocols
       applies to (process, system);
     Time_Budget : aadlinteger applies to (process, system);
     Budget_Replenishment_Period : Time applies to (process, system);
     Storage_Budget : Size applies to (process, system);
     --  XXX replace this with Source_Code_Size ?
     
     ------------
     -- RCM VM --
     ------------
     
     Min_Priority : Priority_Type applies to (processor);
     Max_Priority : Priority_Type applies to (processor);
     Min_Interrupt_Priority : Priority_Type applies to (processor);
     Max_Interrupt_Priority : Priority_Type applies to (processor);
     
     --   To express the Global scheduling policy, we use the standard
     --   property Global_Scheduler_Policy of type
     --   Supported_Scheduling_Protocols.
     
     Longest_Critical_Section : Time applies to (processor);
     
     --  To describe the clock period we use the standard property
     --  Clock_Period of standard type Time.
     
     Periodic_Clock_Interrupt_Period : Time applies to (processor);
     Periodic_Clock_Handler : Time applies to (processor);
     Demanded_Clock_Handler : Time applies to (processor);
     Interrupt_Handler : Time applies to (processor);
     External_Interrupt : Time applies to (processor);
     Wakeup_Jitter : Time applies to (processor);
     Ready : Time applies to (processor);
     Select : Time applies to (processor);
     Context_Switch  : Time applies to (processor);
     Signal : Time applies to (processor);
     Suspension_Call  : Time applies to (processor);
     Wait_Call  : Time applies to (processor);
     Priority_Raising  : Time applies to (processor);
     Priority_Lowering  : Time applies to (processor);
     Barrier_Evaluation  : Time applies to (processor);
     Budget_Replenishment_Overhead : Time applies to (processor);
     Budget_Exhausted_Recovery_Call : Time applies to (processor);
     
     -------------
     -- Devices --
     -------------
     
     -- Processor
     
     Processor_Speed : Frequency applies to (processor);
     --  XXX to be replaced with AADLv2 property
     
     -- Interconnection
     
     --  To express the message size bounds we use the standard property
     --  Allowed_Message_Size which is a range of standard type Size.
     
     --  To describe the propagation delay and the transmission time on a
     --  bus, we use the standard properties Propagation_Delay and
     --  Transmission_Time.
     
     Interconnection_Speed_Factor : aadlreal applies to (bus);
     Transmission_Kind : Transmission_Type applies to (bus);
     
     Bandwidth : Data_Volume applies to (bus);
     
     -- Networking  protocol
     
     -- Memory
     
     Memory_Size : Size applies to (memory);
     
     Access_Time : Time applies to (memory);
     Access_Bandwidth : Data_Volume applies to (bus);
     
     ---------------------------
     -- Deployment Properties --
     ---------------------------
     
     --  To express the binding of an AP-Level container to a processor, we
     --  use the standard property Actual_Processor_Binding.
     
     --  To express the binding of a connection between a couple of
     --  (provided, required) interfaces of two AP-Level containers to a
     --  bus, a processor or a device, we use the standard property
     --  Actual_Connection_Binding.
     
     --  To express the binding of an AP-level container to a particular
     --  memory, we use the standard property Actual_Memory_Binding.
     
     --------------------------------------------
     -- Properties relative to the RCM grammar --
     --------------------------------------------
     
     RCMoperation:  classifier(subprogram) applies to (event port, event data port);
     
     RCMoperationKind_list: type enumeration
       (cyclic,
        sporadic,
        variator,
        protected,
        transaction,
        barrier,
        unprotected,
        deferred,
        immediate,
        any);
     
     RCMoperationKind: RCMoperationKind_list
       applies to (server subprogram, event port, event data port);
     
     RCMceiling: aadlinteger
       applies to (server subprogram, event port, event data port);
     
     RCMperiod: Time applies to (server subprogram, event port, event data port);
     
     RCMpartition: reference (system) applies to (system);
     
     end ASSERT_Properties;