aadl_project.aadl 3.7 KB
Newer Older
Jerome Legrand's avatar
Jerome Legrand committed
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 33 34 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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
--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);

  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,
  Priority_Ceiling_Protocol, -- XXX
  Spin_Lock,
  Semaphore, 
  PIP, PCP ); -- AI aliases
  
  Supported_Dispatch_Protocols: type enumeration (Periodic, Sporadic, Aperiodic, Timed, Hybrid, Background, Interrupt);

  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,
  EDF,
  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, 
  RM, DM, HPF, ARINC653, static, cyclic ); -- AI aliases

  Supported_Source_Languages: type enumeration -- Updated for TASTE/Ocarina
    (Ada95,
     Ada,     -- alias for Ada95
     Ada05,   -- alias for Ada95
     ASN1,
     Blackbox_Device,
     C,
     CPP,     -- C++
     Esterel,
     GUI,
     LUA,
     Lustre,
     Lustre5, -- alias for Lustre
     Lustre6, -- alias for Lustre
     RTDS,    -- alias for SDL_RTDS
     SDL_RTDS,
     RTSJ,    -- Real Time Specification for Java
     SCADE6,  -- alias for Lustre
     SDL,     -- alias for SDL_ObjectGeode
     SDL_ObjectGeode,
     SDL_OpenGEODE,
     Scade,
     Simulink,
     Simulink_6_5,
     System_C,
     VHDL,
     ACN);

  Supported_Distributions: type enumeration (Fixed, Poisson);

  Supported_Classifier_Substitutions: type enumeration (Classifier_Match, Type_Extension, Signature_Match);


  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#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_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);

  Time_Units: type units (
  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;