system.mark 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. .//============================================================================
  2. .// File: system.mark
  3. .//
  4. .// Description:
  5. .// This marking file is used to indicate system wide tuning parameters
  6. .// to the software architecture's translation engine.
  7. .//
  8. .// Notice:
  9. .// (C) Copyright 1999-2013 Mentor Graphics Corporation
  10. .// All rights reserved.
  11. .//============================================================================
  12. .// Notes:
  13. .// (1) Marking is specified via archetype function invocation(s) in this file.
  14. .// A function invocation statement MUST be specified on a single line.
  15. .// All indicated function input parameters must be supplied.
  16. .// (2) All quoted string parameters are case sensitive.
  17. .// (3) Comments in this file start with ".//".
  18. .// (4) Do not leave any blank lines in this file.
  19. .//============================================================================
  20. .//
  21. .//
  22. .//============================================================================
  23. .// Identify System Configuration (collection of components wired into system)
  24. .// Mark a package as containing the system configuration. Code will be
  25. .// generated for components contained in this package and referred to
  26. .// from this package. Components _not_ contained in this package and _not_
  27. .// referred to from this package will be excluded from code generation.
  28. .//
  29. .// MarkSystemConfigurationPackage( system_package )
  30. .//
  31. .// Where the input parameter(s) are:
  32. .// system_package = name of package containing the components interfaced
  33. .// (wired) together into a system
  34. .//
  35. .// Example:
  36. .// .invoke MarkSystemConfigurationPackage( "system1" )
  37. .//============================================================================
  38. .//
  39. .//
  40. .//============================================================================
  41. .// Enable Multi-tasking/threading Capability
  42. .// To cause MC-3020 to generate multi-tasking/threading code invoke
  43. .// the EnableTasking marking function. Pass it arguments to specify
  44. .// the type of multi-tasking environment and whether or not to
  45. .// serialize all action processing (across all tasks).
  46. .//
  47. .// EnableTasking( "type", "serialize_processing", tasks )
  48. .//
  49. .// Where the input parameter(s) are:
  50. .// type = The flavor of RTOS or threading being integrated.
  51. .// serialize_processing = When set to serialize, all actions across
  52. .// all tasks are forced to be serialized. Note that serializing
  53. .// the action processing reduces data access contention, but
  54. .// can severely reduce the multi-tasking performance of the
  55. .// generated system.
  56. .// tasks = number of threads/tasks in the xtUML generated system
  57. .//
  58. .// Example:
  59. .// .invoke EnableTasking( "Nucleus", "", 4 )
  60. .// .invoke EnableTasking( "POSIX", "serialize", 2 )
  61. .// .invoke EnableTasking( "Windows", "", 3 )
  62. .//============================================================================
  63. .//
  64. .//
  65. .//============================================================================
  66. .// Establish Task Priority
  67. .// In systems that support explicit prioritization of tasks,
  68. .// each task (of the number specified in EnableTasking) can have
  69. .// a priority assigned. Use the SetTaskPriority marking function
  70. .// to set the priority for each task.
  71. .//
  72. .// SetTaskPriority( task number, "priority" )
  73. .//
  74. .// Where the input parameter(s) are:
  75. .// task_number = the number of the task (starting with 0)
  76. .// priority = priority of the designated task
  77. .//
  78. .// Example:
  79. .// .invoke SetTaskPriority( 0, "100" )
  80. .// .invoke SetTaskPriority( 3, "high" )
  81. .//============================================================================
  82. .//
  83. .//
  84. .//============================================================================
  85. .// TagMaximumStringLength( max_len )
  86. .//
  87. .// Where the input parameter(s) are:
  88. .// max_len = The maximum string length, in bytes, supported.
  89. .//
  90. .// Example:
  91. .// .invoke TagMaximumStringLength( 64 )
  92. .//============================================================================
  93. .//
  94. .//
  95. .//============================================================================
  96. .// TagMaximumRelationshipExtentSize( value )
  97. .//
  98. .// Where the input parameter(s) are:
  99. .// value = The number of containers that will be pre-allocated for
  100. .// relationships that will be instantiated involving a MANY on the OIM.
  101. .//
  102. .// Example:
  103. .// .invoke TagMaximumRelationshipExtentSize( 100 )
  104. .//============================================================================
  105. .//
  106. .//
  107. .//============================================================================
  108. .// TagMaximumSelectionExtentSize( value )
  109. .//
  110. .// Where the input parameter(s) are:
  111. .// value = The number of containers that will be pre-allocated for
  112. .// BPAL 'SELECT' statements.
  113. .//
  114. .// Example:
  115. .// .invoke TagMaximumSelectionExtentSize( 50 )
  116. .//============================================================================
  117. .//
  118. .//
  119. .//============================================================================
  120. .// TagMaximumSelfDirectedEvents( value )
  121. .//
  122. .// Where the input parameter(s) are:
  123. .// value = maximum number of self directed xtUML events which are expected
  124. .// to be pending in the system at any given time
  125. .//
  126. .// Example:
  127. .// .invoke TagMaximumSelfDirectedEvents( 5 )
  128. .//============================================================================
  129. .//
  130. .//
  131. .//============================================================================
  132. .// TagMaximumNonSelfDirectedEvents( value )
  133. .//
  134. .// Where the input parameter(s) are:
  135. .// value = The maximum number of non self directed xtUML events which are
  136. .// expected to be pending in the system at any given time.
  137. .//
  138. .// Example:
  139. .// .invoke TagMaximumNonSelfDirectedEvents( 20 )
  140. .//============================================================================
  141. .//
  142. .//
  143. .//============================================================================
  144. .// TagMaximumPendingOoaTimers( value )
  145. .//
  146. .// Where the input parameter(s) are:
  147. .// value = The maximum number of xtUML timers (e.g., delayed xtUML events)
  148. .// expected to be pending in the system at any given time.
  149. .//
  150. .// Example:
  151. .// .invoke TagMaximumPendingOoaTimers( 10 )
  152. .//============================================================================
  153. .//
  154. .//
  155. .//============================================================================
  156. .// TagMaximumInterleavedBridges( value )
  157. .//
  158. .// Where the input parameter(s) are:
  159. .// value = The maximum queue depth for safe bridge operations that
  160. .// are interleaved between state actions (to maintain data access
  161. .// set consistency).
  162. .//
  163. .// Use this mark to expand or reduce the depth of the queue used
  164. .// to interleave "asynchronous" bridge operations between state
  165. .// actions. The default will be a system divined value that should
  166. .// be relatively safe in most cases.
  167. .//
  168. .// Example:
  169. .// .invoke TagMaximumInterleavedBridges( 4 )
  170. .//============================================================================
  171. .//
  172. .//
  173. .//============================================================================
  174. .// TagInterleavedBridgeDataSize( value )
  175. .//
  176. .// Where the input parameter(s) are:
  177. .// value = The greatest number of bytes required to pass argument
  178. .// data through an interleaved bridge (synchronous service tagged
  179. .// "SafeForInterrupts").
  180. .//
  181. .// Use this mark to define how many bytes of argument data comes
  182. .// in across an interleaved bridge operation.
  183. .// The default is 8.
  184. .//
  185. .// Example:
  186. .// .invoke TagInterleavedBridgeDataSize( 2 )
  187. .//============================================================================
  188. .//
  189. .//
  190. .//============================================================================
  191. .// TagCollectionsFlavor( value )
  192. .//
  193. .// Where the input parameter(s) are:
  194. .// value = The greatest number representing the type of collection
  195. .// mechanism to use. The default (not marked) value is 0 and
  196. .// represents a singly linked (slist) flavor of container.
  197. .// 20 represents a doubly linked (dlist) flavor of container.
  198. .// (Dlists make deleting instances faster.)
  199. .//
  200. .// Use this mark to define the flavor of collection container desired.
  201. .// The default is 0.
  202. .//
  203. .// Example:
  204. .// .invoke TagCollectionsFlavor( 20 )
  205. .//============================================================================
  206. .//
  207. .//
  208. .//============================================================================
  209. .// Dynamic Memory Allocation
  210. .//
  211. .// TagDynamicMemoryAllocationOn is used to indicate that operating system
  212. .// services will be used to allocate memory (when extra memory is needed).
  213. .//
  214. .// When dynamic memory allocation is marked off, system user callout
  215. .// functions are called when a request is made to allocate resources
  216. .// beyond what is statically available.
  217. .//
  218. .// When dynamic memory allocation is marked on, the files sys_memory.h and
  219. .// sys_memory.c are generated. sys_memory.h contains the
  220. .// #define ROX_MALLOC_HEAP_SIZE which allows you to control how much of the
  221. .// heap is available to your application for consumption.
  222. .//
  223. .// To turn on and use dynamic memory allocation:
  224. .// .invoke TagDynamicMemoryAllocationOn( additional_instances );
  225. .//
  226. .// Where the argument: additional_instances
  227. .// is the number of additional instances to allocate each time space for new
  228. .// instances runs out.
  229. .//
  230. .// Example:
  231. .// .invoke TagDynamicMemoryAllocationOn( 10 )
  232. .//============================================================================
  233. .//
  234. .//
  235. .//============================================================================
  236. .// Mark Depth of Persistence Cache Queue
  237. .//
  238. .// This mark is used to specify the maximum number of instances and
  239. .// links that can be queued waiting to be flushed to non-volatile
  240. .// storage (NVS). As instances and links become "dirty" they get
  241. .// queued to NVS. When Persist::Commit is called this queue is flushed.
  242. .//
  243. .// MarkPersistenceCacheDepth( instance_depth, link_depth )
  244. .//
  245. .// Where the input parameter(s) are:
  246. .// instance_depth = the integer depth of the linked list of instances
  247. .// link_depth = the integer depth of the linked list of persistent links
  248. .//
  249. .// Note: The default depth of both cache queues is 128.
  250. .//
  251. .// Example:
  252. .// .invoke MarkPersistenceCacheDepth( 300, 220 )
  253. .//============================================================================
  254. .//
  255. .//
  256. .//============================================================================
  257. .// Do not add anything at the end of this file!
  258. .//============================================================================