systemc 3.0.2.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. systemc/__init__.py +12 -0
  2. systemc/__main__.py +4 -0
  3. systemc/cli.py +107 -0
  4. systemc/include/sysc/communication/sc_buffer.h +192 -0
  5. systemc/include/sysc/communication/sc_clock.h +251 -0
  6. systemc/include/sysc/communication/sc_clock_ports.h +72 -0
  7. systemc/include/sysc/communication/sc_communication_ids.h +166 -0
  8. systemc/include/sysc/communication/sc_event_finder.h +203 -0
  9. systemc/include/sysc/communication/sc_event_queue.h +181 -0
  10. systemc/include/sysc/communication/sc_export.h +296 -0
  11. systemc/include/sysc/communication/sc_fifo.h +481 -0
  12. systemc/include/sysc/communication/sc_fifo_ifs.h +209 -0
  13. systemc/include/sysc/communication/sc_fifo_ports.h +318 -0
  14. systemc/include/sysc/communication/sc_host_mutex.h +110 -0
  15. systemc/include/sysc/communication/sc_host_semaphore.h +106 -0
  16. systemc/include/sysc/communication/sc_interface.h +98 -0
  17. systemc/include/sysc/communication/sc_mutex.h +124 -0
  18. systemc/include/sysc/communication/sc_mutex_if.h +146 -0
  19. systemc/include/sysc/communication/sc_port.h +750 -0
  20. systemc/include/sysc/communication/sc_prim_channel.h +447 -0
  21. systemc/include/sysc/communication/sc_semaphore.h +133 -0
  22. systemc/include/sysc/communication/sc_semaphore_if.h +100 -0
  23. systemc/include/sysc/communication/sc_signal.h +673 -0
  24. systemc/include/sysc/communication/sc_signal_ifs.h +306 -0
  25. systemc/include/sysc/communication/sc_signal_ports.h +1873 -0
  26. systemc/include/sysc/communication/sc_signal_resolved.h +158 -0
  27. systemc/include/sysc/communication/sc_signal_resolved_ports.h +327 -0
  28. systemc/include/sysc/communication/sc_signal_rv.h +257 -0
  29. systemc/include/sysc/communication/sc_signal_rv_ports.h +375 -0
  30. systemc/include/sysc/communication/sc_stub.h +243 -0
  31. systemc/include/sysc/communication/sc_writer_policy.h +155 -0
  32. systemc/include/sysc/datatypes/bit/sc_bit.h +407 -0
  33. systemc/include/sysc/datatypes/bit/sc_bit_ids.h +106 -0
  34. systemc/include/sysc/datatypes/bit/sc_bit_proxies.h +3930 -0
  35. systemc/include/sysc/datatypes/bit/sc_bv.h +216 -0
  36. systemc/include/sysc/datatypes/bit/sc_bv_base.h +278 -0
  37. systemc/include/sysc/datatypes/bit/sc_logic.h +388 -0
  38. systemc/include/sysc/datatypes/bit/sc_lv.h +218 -0
  39. systemc/include/sysc/datatypes/bit/sc_lv_base.h +1893 -0
  40. systemc/include/sysc/datatypes/bit/sc_proxy.h +1549 -0
  41. systemc/include/sysc/datatypes/fx/fx.h +61 -0
  42. systemc/include/sysc/datatypes/fx/sc_context.h +318 -0
  43. systemc/include/sysc/datatypes/fx/sc_fix.h +1914 -0
  44. systemc/include/sysc/datatypes/fx/sc_fixed.h +636 -0
  45. systemc/include/sysc/datatypes/fx/sc_fx_ids.h +96 -0
  46. systemc/include/sysc/datatypes/fx/sc_fxcast_switch.h +184 -0
  47. systemc/include/sysc/datatypes/fx/sc_fxdefs.h +310 -0
  48. systemc/include/sysc/datatypes/fx/sc_fxnum.h +5146 -0
  49. systemc/include/sysc/datatypes/fx/sc_fxnum_observer.h +219 -0
  50. systemc/include/sysc/datatypes/fx/sc_fxtype_params.h +352 -0
  51. systemc/include/sysc/datatypes/fx/sc_fxval.h +2200 -0
  52. systemc/include/sysc/datatypes/fx/sc_fxval_observer.h +223 -0
  53. systemc/include/sysc/datatypes/fx/sc_ufix.h +1917 -0
  54. systemc/include/sysc/datatypes/fx/sc_ufixed.h +636 -0
  55. systemc/include/sysc/datatypes/fx/scfx_ieee.h +680 -0
  56. systemc/include/sysc/datatypes/fx/scfx_mant.h +490 -0
  57. systemc/include/sysc/datatypes/fx/scfx_other_defs.h +364 -0
  58. systemc/include/sysc/datatypes/fx/scfx_params.h +223 -0
  59. systemc/include/sysc/datatypes/fx/scfx_pow10.h +95 -0
  60. systemc/include/sysc/datatypes/fx/scfx_rep.h +843 -0
  61. systemc/include/sysc/datatypes/fx/scfx_string.h +232 -0
  62. systemc/include/sysc/datatypes/fx/scfx_utils.h +534 -0
  63. systemc/include/sysc/datatypes/int/sc_big_ops.h +925 -0
  64. systemc/include/sysc/datatypes/int/sc_bigint.h +713 -0
  65. systemc/include/sysc/datatypes/int/sc_bigint_inlines.h +558 -0
  66. systemc/include/sysc/datatypes/int/sc_biguint.h +721 -0
  67. systemc/include/sysc/datatypes/int/sc_biguint_inlines.h +551 -0
  68. systemc/include/sysc/datatypes/int/sc_int.h +338 -0
  69. systemc/include/sysc/datatypes/int/sc_int_base.h +1393 -0
  70. systemc/include/sysc/datatypes/int/sc_int_ids.h +80 -0
  71. systemc/include/sysc/datatypes/int/sc_int_inlines.h +85 -0
  72. systemc/include/sysc/datatypes/int/sc_length_param.h +213 -0
  73. systemc/include/sysc/datatypes/int/sc_nbdefs.h +528 -0
  74. systemc/include/sysc/datatypes/int/sc_nbutils.h +336 -0
  75. systemc/include/sysc/datatypes/int/sc_signed.h +1663 -0
  76. systemc/include/sysc/datatypes/int/sc_signed_friends.h +496 -0
  77. systemc/include/sysc/datatypes/int/sc_signed_inlines.h +465 -0
  78. systemc/include/sysc/datatypes/int/sc_signed_ops.h +1557 -0
  79. systemc/include/sysc/datatypes/int/sc_uint.h +343 -0
  80. systemc/include/sysc/datatypes/int/sc_uint_base.h +1353 -0
  81. systemc/include/sysc/datatypes/int/sc_uint_inlines.h +85 -0
  82. systemc/include/sysc/datatypes/int/sc_unsigned.h +1702 -0
  83. systemc/include/sysc/datatypes/int/sc_unsigned_friends.h +370 -0
  84. systemc/include/sysc/datatypes/int/sc_unsigned_inlines.h +458 -0
  85. systemc/include/sysc/datatypes/int/sc_vector_utils.h +2718 -0
  86. systemc/include/sysc/datatypes/misc/sc_concatref.h +856 -0
  87. systemc/include/sysc/datatypes/misc/sc_value_base.h +129 -0
  88. systemc/include/sysc/kernel/sc_attribute.h +220 -0
  89. systemc/include/sysc/kernel/sc_cmnhdr.h +206 -0
  90. systemc/include/sysc/kernel/sc_constants.h +74 -0
  91. systemc/include/sysc/kernel/sc_cor.h +157 -0
  92. systemc/include/sysc/kernel/sc_cor_fiber.h +172 -0
  93. systemc/include/sysc/kernel/sc_cor_pthread.h +159 -0
  94. systemc/include/sysc/kernel/sc_cor_qt.h +151 -0
  95. systemc/include/sysc/kernel/sc_cor_std_thread.h +143 -0
  96. systemc/include/sysc/kernel/sc_cthread_process.h +141 -0
  97. systemc/include/sysc/kernel/sc_dynamic_processes.h +105 -0
  98. systemc/include/sysc/kernel/sc_event.h +926 -0
  99. systemc/include/sysc/kernel/sc_except.h +188 -0
  100. systemc/include/sysc/kernel/sc_externs.h +65 -0
  101. systemc/include/sysc/kernel/sc_initializer_function.h +107 -0
  102. systemc/include/sysc/kernel/sc_join.h +140 -0
  103. systemc/include/sysc/kernel/sc_kernel_ids.h +332 -0
  104. systemc/include/sysc/kernel/sc_macros.h +164 -0
  105. systemc/include/sysc/kernel/sc_method_process.h +468 -0
  106. systemc/include/sysc/kernel/sc_module.h +599 -0
  107. systemc/include/sysc/kernel/sc_module_name.h +159 -0
  108. systemc/include/sysc/kernel/sc_module_registry.h +124 -0
  109. systemc/include/sysc/kernel/sc_name_gen.h +90 -0
  110. systemc/include/sysc/kernel/sc_object.h +338 -0
  111. systemc/include/sysc/kernel/sc_object_int.h +93 -0
  112. systemc/include/sysc/kernel/sc_object_manager.h +152 -0
  113. systemc/include/sysc/kernel/sc_process.h +853 -0
  114. systemc/include/sysc/kernel/sc_process_handle.h +627 -0
  115. systemc/include/sysc/kernel/sc_reset.h +205 -0
  116. systemc/include/sysc/kernel/sc_runnable.h +155 -0
  117. systemc/include/sysc/kernel/sc_runnable_int.h +586 -0
  118. systemc/include/sysc/kernel/sc_sensitive.h +316 -0
  119. systemc/include/sysc/kernel/sc_simcontext.h +1120 -0
  120. systemc/include/sysc/kernel/sc_simcontext_int.h +358 -0
  121. systemc/include/sysc/kernel/sc_spawn.h +272 -0
  122. systemc/include/sysc/kernel/sc_spawn_options.h +171 -0
  123. systemc/include/sysc/kernel/sc_stage_callback_if.h +85 -0
  124. systemc/include/sysc/kernel/sc_stage_callback_registry.h +244 -0
  125. systemc/include/sysc/kernel/sc_status.h +75 -0
  126. systemc/include/sysc/kernel/sc_thread_process.h +645 -0
  127. systemc/include/sysc/kernel/sc_time.h +510 -0
  128. systemc/include/sysc/kernel/sc_ver.h +198 -0
  129. systemc/include/sysc/kernel/sc_wait.h +277 -0
  130. systemc/include/sysc/kernel/sc_wait_cthread.h +127 -0
  131. systemc/include/sysc/packages/qt/b.h +11 -0
  132. systemc/include/sysc/packages/qt/copyright.h +12 -0
  133. systemc/include/sysc/packages/qt/md/aarch64.h +46 -0
  134. systemc/include/sysc/packages/qt/md/axp.h +160 -0
  135. systemc/include/sysc/packages/qt/md/hppa.h +196 -0
  136. systemc/include/sysc/packages/qt/md/i386.h +132 -0
  137. systemc/include/sysc/packages/qt/md/iX86_64.h +140 -0
  138. systemc/include/sysc/packages/qt/md/ksr1.h +164 -0
  139. systemc/include/sysc/packages/qt/md/m88k.h +159 -0
  140. systemc/include/sysc/packages/qt/md/mips.h +134 -0
  141. systemc/include/sysc/packages/qt/md/powerpc_mach.h +611 -0
  142. systemc/include/sysc/packages/qt/md/powerpc_sys5.h +566 -0
  143. systemc/include/sysc/packages/qt/md/riscv64.h +45 -0
  144. systemc/include/sysc/packages/qt/md/sparc.h +140 -0
  145. systemc/include/sysc/packages/qt/md/vax.h +130 -0
  146. systemc/include/sysc/packages/qt/qt.h +196 -0
  147. systemc/include/sysc/packages/qt/qtmd.h +19 -0
  148. systemc/include/sysc/packages/qt/stp.h +51 -0
  149. systemc/include/sysc/tracing/sc_trace.h +368 -0
  150. systemc/include/sysc/tracing/sc_trace_file_base.h +154 -0
  151. systemc/include/sysc/tracing/sc_tracing_ids.h +85 -0
  152. systemc/include/sysc/tracing/sc_vcd_trace.h +240 -0
  153. systemc/include/sysc/tracing/sc_wif_trace.h +222 -0
  154. systemc/include/sysc/utils/sc_hash.h +461 -0
  155. systemc/include/sysc/utils/sc_iostream.h +56 -0
  156. systemc/include/sysc/utils/sc_list.h +190 -0
  157. systemc/include/sysc/utils/sc_machine.h +82 -0
  158. systemc/include/sysc/utils/sc_mempool.h +90 -0
  159. systemc/include/sysc/utils/sc_pq.h +154 -0
  160. systemc/include/sysc/utils/sc_ptr_flag.h +85 -0
  161. systemc/include/sysc/utils/sc_pvector.h +187 -0
  162. systemc/include/sysc/utils/sc_report.h +318 -0
  163. systemc/include/sysc/utils/sc_report_handler.h +210 -0
  164. systemc/include/sysc/utils/sc_stop_here.h +82 -0
  165. systemc/include/sysc/utils/sc_string.h +137 -0
  166. systemc/include/sysc/utils/sc_string_view.h +110 -0
  167. systemc/include/sysc/utils/sc_temporary.h +141 -0
  168. systemc/include/sysc/utils/sc_utils_ids.h +114 -0
  169. systemc/include/sysc/utils/sc_vector.h +817 -0
  170. systemc/include/systemc +142 -0
  171. systemc/include/systemc.h +300 -0
  172. systemc/include/tlm +33 -0
  173. systemc/include/tlm.h +22 -0
  174. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h +33 -0
  175. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h +54 -0
  176. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h +39 -0
  177. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h +84 -0
  178. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h +53 -0
  179. systemc/include/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h +42 -0
  180. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h +149 -0
  181. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_fifo_ifs.h +90 -0
  182. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_master_slave_ifs.h +73 -0
  183. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_tag.h +31 -0
  184. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_adapters/tlm_adapters.h +103 -0
  185. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/circular_buffer.h +268 -0
  186. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h +263 -0
  187. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_peek.h +98 -0
  188. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_put_get.h +140 -0
  189. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_resize.h +93 -0
  190. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_put_get_imp.h +114 -0
  191. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_req_rsp_channels.h +155 -0
  192. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_event_finder.h +76 -0
  193. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_nonblocking_port.h +91 -0
  194. systemc/include/tlm_core/tlm_1/tlm_req_rsp/tlm_req_rsp.h +37 -0
  195. systemc/include/tlm_core/tlm_2/tlm_2_interfaces/tlm_2_interfaces.h +27 -0
  196. systemc/include/tlm_core/tlm_2/tlm_2_interfaces/tlm_dmi.h +114 -0
  197. systemc/include/tlm_core/tlm_2/tlm_2_interfaces/tlm_fw_bw_ifs.h +229 -0
  198. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_array.h +126 -0
  199. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_endian_conv.h +792 -0
  200. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_generic_payload.h +29 -0
  201. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_gp.h +402 -0
  202. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_helpers.h +80 -0
  203. systemc/include/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.h +106 -0
  204. systemc/include/tlm_core/tlm_2/tlm_quantum/tlm_global_quantum.h +82 -0
  205. systemc/include/tlm_core/tlm_2/tlm_quantum/tlm_quantum.h +25 -0
  206. systemc/include/tlm_core/tlm_2/tlm_sockets/tlm_base_socket_if.h +69 -0
  207. systemc/include/tlm_core/tlm_2/tlm_sockets/tlm_initiator_socket.h +228 -0
  208. systemc/include/tlm_core/tlm_2/tlm_sockets/tlm_sockets.h +26 -0
  209. systemc/include/tlm_core/tlm_2/tlm_sockets/tlm_target_socket.h +280 -0
  210. systemc/include/tlm_core/tlm_2/tlm_version.h +180 -0
  211. systemc/include/tlm_utils/convenience_socket_bases.h +77 -0
  212. systemc/include/tlm_utils/instance_specific_extensions.h +124 -0
  213. systemc/include/tlm_utils/instance_specific_extensions_int.h +174 -0
  214. systemc/include/tlm_utils/multi_passthrough_initiator_socket.h +299 -0
  215. systemc/include/tlm_utils/multi_passthrough_target_socket.h +342 -0
  216. systemc/include/tlm_utils/multi_socket_bases.h +440 -0
  217. systemc/include/tlm_utils/passthrough_target_socket.h +477 -0
  218. systemc/include/tlm_utils/peq_with_cb_and_phase.h +297 -0
  219. systemc/include/tlm_utils/peq_with_get.h +94 -0
  220. systemc/include/tlm_utils/simple_initiator_socket.h +316 -0
  221. systemc/include/tlm_utils/simple_target_socket.h +1130 -0
  222. systemc/include/tlm_utils/tlm_quantumkeeper.h +172 -0
  223. systemc/tests/__init__.py +0 -0
  224. systemc/tests/conftest.py +0 -0
  225. systemc/tests/test_all.py +5 -0
  226. systemc/tests/test_e2e.py +17 -0
  227. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_buffer.h +192 -0
  228. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_clock.h +251 -0
  229. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_clock_ports.h +72 -0
  230. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_communication_ids.h +166 -0
  231. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_event_finder.h +203 -0
  232. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_event_queue.h +181 -0
  233. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_export.h +296 -0
  234. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_fifo.h +481 -0
  235. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_fifo_ifs.h +209 -0
  236. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_fifo_ports.h +318 -0
  237. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_host_mutex.h +110 -0
  238. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_host_semaphore.h +106 -0
  239. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_interface.h +98 -0
  240. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_mutex.h +124 -0
  241. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_mutex_if.h +146 -0
  242. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_port.h +750 -0
  243. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_prim_channel.h +447 -0
  244. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_semaphore.h +133 -0
  245. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_semaphore_if.h +100 -0
  246. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal.h +673 -0
  247. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_ifs.h +306 -0
  248. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_ports.h +1873 -0
  249. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_resolved.h +158 -0
  250. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_resolved_ports.h +327 -0
  251. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_rv.h +257 -0
  252. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_signal_rv_ports.h +375 -0
  253. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_stub.h +243 -0
  254. systemc-3.0.2.0.data/data/include/systemc/sysc/communication/sc_writer_policy.h +155 -0
  255. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_bit.h +407 -0
  256. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_bit_ids.h +106 -0
  257. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_bit_proxies.h +3930 -0
  258. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_bv.h +216 -0
  259. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_bv_base.h +278 -0
  260. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_logic.h +388 -0
  261. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_lv.h +218 -0
  262. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_lv_base.h +1893 -0
  263. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/bit/sc_proxy.h +1549 -0
  264. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/fx.h +61 -0
  265. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_context.h +318 -0
  266. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fix.h +1914 -0
  267. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fixed.h +636 -0
  268. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fx_ids.h +96 -0
  269. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxcast_switch.h +184 -0
  270. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxdefs.h +310 -0
  271. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxnum.h +5146 -0
  272. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxnum_observer.h +219 -0
  273. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxtype_params.h +352 -0
  274. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxval.h +2200 -0
  275. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_fxval_observer.h +223 -0
  276. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_ufix.h +1917 -0
  277. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/sc_ufixed.h +636 -0
  278. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_ieee.h +680 -0
  279. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_mant.h +490 -0
  280. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_other_defs.h +364 -0
  281. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_params.h +223 -0
  282. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_pow10.h +95 -0
  283. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_rep.h +843 -0
  284. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_string.h +232 -0
  285. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/fx/scfx_utils.h +534 -0
  286. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_big_ops.h +925 -0
  287. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_bigint.h +713 -0
  288. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_bigint_inlines.h +558 -0
  289. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_biguint.h +721 -0
  290. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_biguint_inlines.h +551 -0
  291. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_int.h +338 -0
  292. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_int_base.h +1393 -0
  293. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_int_ids.h +80 -0
  294. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_int_inlines.h +85 -0
  295. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_length_param.h +213 -0
  296. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_nbdefs.h +528 -0
  297. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_nbutils.h +336 -0
  298. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_signed.h +1663 -0
  299. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_signed_friends.h +496 -0
  300. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_signed_inlines.h +465 -0
  301. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_signed_ops.h +1557 -0
  302. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_uint.h +343 -0
  303. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_uint_base.h +1353 -0
  304. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_uint_inlines.h +85 -0
  305. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_unsigned.h +1702 -0
  306. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_unsigned_friends.h +370 -0
  307. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_unsigned_inlines.h +458 -0
  308. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/int/sc_vector_utils.h +2718 -0
  309. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/misc/sc_concatref.h +856 -0
  310. systemc-3.0.2.0.data/data/include/systemc/sysc/datatypes/misc/sc_value_base.h +129 -0
  311. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_attribute.h +220 -0
  312. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cmnhdr.h +206 -0
  313. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_constants.h +74 -0
  314. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cor.h +157 -0
  315. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cor_fiber.h +172 -0
  316. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cor_pthread.h +159 -0
  317. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cor_qt.h +151 -0
  318. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cor_std_thread.h +143 -0
  319. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_cthread_process.h +141 -0
  320. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_dynamic_processes.h +105 -0
  321. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_event.h +926 -0
  322. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_except.h +188 -0
  323. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_externs.h +65 -0
  324. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_initializer_function.h +107 -0
  325. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_join.h +140 -0
  326. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_kernel_ids.h +332 -0
  327. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_macros.h +164 -0
  328. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_method_process.h +468 -0
  329. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_module.h +599 -0
  330. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_module_name.h +159 -0
  331. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_module_registry.h +124 -0
  332. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_name_gen.h +90 -0
  333. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_object.h +338 -0
  334. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_object_int.h +93 -0
  335. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_object_manager.h +152 -0
  336. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_process.h +853 -0
  337. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_process_handle.h +627 -0
  338. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_reset.h +205 -0
  339. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_runnable.h +155 -0
  340. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_runnable_int.h +586 -0
  341. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_sensitive.h +316 -0
  342. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_simcontext.h +1120 -0
  343. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_simcontext_int.h +358 -0
  344. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_spawn.h +272 -0
  345. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_spawn_options.h +171 -0
  346. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_stage_callback_if.h +85 -0
  347. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_stage_callback_registry.h +244 -0
  348. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_status.h +75 -0
  349. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_thread_process.h +645 -0
  350. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_time.h +510 -0
  351. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_ver.h +198 -0
  352. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_wait.h +277 -0
  353. systemc-3.0.2.0.data/data/include/systemc/sysc/kernel/sc_wait_cthread.h +127 -0
  354. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/b.h +11 -0
  355. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/copyright.h +12 -0
  356. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/aarch64.h +46 -0
  357. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/axp.h +160 -0
  358. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/hppa.h +196 -0
  359. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/i386.h +132 -0
  360. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/iX86_64.h +140 -0
  361. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/ksr1.h +164 -0
  362. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/m88k.h +159 -0
  363. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/mips.h +134 -0
  364. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/powerpc_mach.h +611 -0
  365. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/powerpc_sys5.h +566 -0
  366. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/riscv64.h +45 -0
  367. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/sparc.h +140 -0
  368. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/md/vax.h +130 -0
  369. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/qt.h +196 -0
  370. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/qtmd.h +19 -0
  371. systemc-3.0.2.0.data/data/include/systemc/sysc/packages/qt/stp.h +51 -0
  372. systemc-3.0.2.0.data/data/include/systemc/sysc/tracing/sc_trace.h +368 -0
  373. systemc-3.0.2.0.data/data/include/systemc/sysc/tracing/sc_trace_file_base.h +154 -0
  374. systemc-3.0.2.0.data/data/include/systemc/sysc/tracing/sc_tracing_ids.h +85 -0
  375. systemc-3.0.2.0.data/data/include/systemc/sysc/tracing/sc_vcd_trace.h +240 -0
  376. systemc-3.0.2.0.data/data/include/systemc/sysc/tracing/sc_wif_trace.h +222 -0
  377. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_hash.h +461 -0
  378. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_iostream.h +56 -0
  379. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_list.h +190 -0
  380. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_machine.h +82 -0
  381. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_mempool.h +90 -0
  382. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_pq.h +154 -0
  383. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_ptr_flag.h +85 -0
  384. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_pvector.h +187 -0
  385. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_report.h +318 -0
  386. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_report_handler.h +210 -0
  387. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_stop_here.h +82 -0
  388. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_string.h +137 -0
  389. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_string_view.h +110 -0
  390. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_temporary.h +141 -0
  391. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_utils_ids.h +114 -0
  392. systemc-3.0.2.0.data/data/include/systemc/sysc/utils/sc_vector.h +817 -0
  393. systemc-3.0.2.0.data/data/include/systemc/systemc +142 -0
  394. systemc-3.0.2.0.data/data/include/systemc/systemc.h +300 -0
  395. systemc-3.0.2.0.data/data/include/systemc/tlm +33 -0
  396. systemc-3.0.2.0.data/data/include/systemc/tlm.h +22 -0
  397. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h +33 -0
  398. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h +54 -0
  399. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h +39 -0
  400. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h +84 -0
  401. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h +53 -0
  402. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h +42 -0
  403. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h +149 -0
  404. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_fifo_ifs.h +90 -0
  405. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_master_slave_ifs.h +73 -0
  406. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_tag.h +31 -0
  407. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_adapters/tlm_adapters.h +103 -0
  408. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/circular_buffer.h +268 -0
  409. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h +263 -0
  410. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_peek.h +98 -0
  411. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_put_get.h +140 -0
  412. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_resize.h +93 -0
  413. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_put_get_imp.h +114 -0
  414. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_req_rsp_channels.h +155 -0
  415. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_event_finder.h +76 -0
  416. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_nonblocking_port.h +91 -0
  417. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_1/tlm_req_rsp/tlm_req_rsp.h +37 -0
  418. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_2_interfaces/tlm_2_interfaces.h +27 -0
  419. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_2_interfaces/tlm_dmi.h +114 -0
  420. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_2_interfaces/tlm_fw_bw_ifs.h +229 -0
  421. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_array.h +126 -0
  422. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_endian_conv.h +792 -0
  423. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_generic_payload.h +29 -0
  424. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_gp.h +402 -0
  425. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_helpers.h +80 -0
  426. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.h +106 -0
  427. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_quantum/tlm_global_quantum.h +82 -0
  428. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_quantum/tlm_quantum.h +25 -0
  429. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_sockets/tlm_base_socket_if.h +69 -0
  430. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_sockets/tlm_initiator_socket.h +228 -0
  431. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_sockets/tlm_sockets.h +26 -0
  432. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_sockets/tlm_target_socket.h +280 -0
  433. systemc-3.0.2.0.data/data/include/systemc/tlm_core/tlm_2/tlm_version.h +180 -0
  434. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/convenience_socket_bases.h +77 -0
  435. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/instance_specific_extensions.h +124 -0
  436. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/instance_specific_extensions_int.h +174 -0
  437. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/multi_passthrough_initiator_socket.h +299 -0
  438. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/multi_passthrough_target_socket.h +342 -0
  439. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/multi_socket_bases.h +440 -0
  440. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/passthrough_target_socket.h +477 -0
  441. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/peq_with_cb_and_phase.h +297 -0
  442. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/peq_with_get.h +94 -0
  443. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/simple_initiator_socket.h +316 -0
  444. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/simple_target_socket.h +1130 -0
  445. systemc-3.0.2.0.data/data/include/systemc/tlm_utils/tlm_quantumkeeper.h +172 -0
  446. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/AUTHORS.md +85 -0
  447. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/DEVELOPMENT.md +519 -0
  448. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/INSTALL.md +569 -0
  449. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/INSTALL_USING_AUTOTOOLS.md +521 -0
  450. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/LICENSE +202 -0
  451. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/NOTICE +104 -0
  452. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/README.md +96 -0
  453. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/RELEASENOTES.md +255 -0
  454. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/git_branches.svg +291 -0
  455. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/sysc/README +17 -0
  456. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/sysc/SIGN_EXTENSION.md +77 -0
  457. systemc-3.0.2.0.data/data/share/systemc/doc/systemc/tlm/tlm_README.md +69 -0
  458. systemc-3.0.2.0.dist-info/METADATA +60 -0
  459. systemc-3.0.2.0.dist-info/RECORD +462 -0
  460. systemc-3.0.2.0.dist-info/WHEEL +4 -0
  461. systemc-3.0.2.0.dist-info/entry_points.txt +2 -0
  462. systemc-3.0.2.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,853 @@
1
+ /*****************************************************************************
2
+
3
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4
+ more contributor license agreements. See the NOTICE file distributed
5
+ with this work for additional information regarding copyright ownership.
6
+ Accellera licenses this file to you under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with the
8
+ License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
+ implied. See the License for the specific language governing
16
+ permissions and limitations under the License.
17
+
18
+ *****************************************************************************/
19
+
20
+ /*****************************************************************************
21
+
22
+ sc_process.h -- Process base class support.
23
+
24
+ Original Author: Andy Goodrich, Forte Design Systems, 04 August 2005
25
+
26
+
27
+ CHANGE LOG AT THE END OF THE FILE
28
+ *****************************************************************************/
29
+
30
+
31
+ #ifndef SC_PROCESS_H_INCLUDED_
32
+ #define SC_PROCESS_H_INCLUDED_
33
+
34
+ #include "sysc/kernel/sc_constants.h"
35
+ #include "sysc/kernel/sc_object.h"
36
+ #include "sysc/kernel/sc_kernel_ids.h"
37
+ #include "sysc/communication/sc_export.h"
38
+
39
+ #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN)
40
+ #pragma warning(push)
41
+ #pragma warning(disable: 4251) // DLL import for std::vector
42
+ #endif
43
+
44
+ namespace sc_core {
45
+
46
+ // Forward declarations:
47
+ class sc_process_handle;
48
+ class sc_thread_process;
49
+ class sc_reset;
50
+
51
+ SC_API sc_process_handle sc_get_current_process_handle();
52
+ void sc_thread_cor_fn( void* arg );
53
+ SC_API bool timed_out( sc_simcontext* );
54
+
55
+ SC_API extern bool sc_allow_process_control_corners; // see sc_simcontext.cpp.
56
+
57
+
58
+ // Process handles as forward references:
59
+
60
+ typedef class sc_cthread_process* sc_cthread_handle;
61
+ typedef class sc_method_process* sc_method_handle;
62
+ typedef class sc_thread_process* sc_thread_handle;
63
+
64
+
65
+ // Standard process types:
66
+
67
+ enum sc_curr_proc_kind
68
+ {
69
+ SC_NO_PROC_,
70
+ SC_METHOD_PROC_,
71
+ SC_THREAD_PROC_,
72
+ SC_CTHREAD_PROC_
73
+ };
74
+
75
+ // Descendant information for process hierarchy operations:
76
+
77
+ enum sc_descendant_inclusion_info {
78
+ SC_NO_DESCENDANTS=0,
79
+ SC_INCLUDE_DESCENDANTS,
80
+ SC_INVALID_DESCENDANTS
81
+ };
82
+
83
+
84
+ //==============================================================================
85
+ // CLASS sc_process_host
86
+ //
87
+ // This is the base class for objects which may have processes defined for
88
+ // their methods (e.g., sc_module)
89
+ //==============================================================================
90
+
91
+ class SC_API sc_process_host
92
+ {
93
+ public:
94
+ sc_process_host() {}
95
+ virtual ~sc_process_host() { } // Needed for cast check for sc_module.
96
+ void defunct() {}
97
+ };
98
+
99
+
100
+ //==============================================================================
101
+ // CLASS sc_process_monitor
102
+ //
103
+ // This class provides a way of monitoring a process' status (e.g., waiting
104
+ // for a thread to complete its execution.) This class is intended to be a base
105
+ // class for classes which need to monitor a process or processes (e.g.,
106
+ // sc_join.) Its methods should be overloaded where notifications are desired.
107
+ //==============================================================================
108
+
109
+ class SC_API sc_process_monitor {
110
+ public:
111
+ enum {
112
+ spm_exit = 0
113
+ };
114
+ virtual ~sc_process_monitor() {}
115
+ virtual void signal(sc_thread_handle thread_p, int type);
116
+ };
117
+ inline void sc_process_monitor::signal(sc_thread_handle , int ) {}
118
+
119
+ //-----------------------------------------------------------------------------
120
+ // PROCESS INVOCATION FUNCTION:
121
+ //
122
+ // We use member function pointers to implement process dispatch.
123
+ // The required conversion from `void (callback_tag::*)()' to
124
+ // `void (sc_process_host::*)()' is supposed to be OK as long as the
125
+ // dynamic type is correct.
126
+ //
127
+ // C++ Standard 5.4 "Explicit type conversion", clause 7:
128
+ // A pointer to member of derived class type may be explicitly converted to
129
+ // a pointer to member of an unambiguous non-virtual base class type.
130
+ //-----------------------------------------------------------------------------
131
+
132
+ typedef void (sc_process_host::*sc_entry_func)();
133
+ #define SC_MAKE_FUNC_PTR(callback_tag, func) \
134
+ static_cast<sc_core::sc_entry_func>(&callback_tag::func)
135
+
136
+ extern SC_API void sc_set_stack_size( sc_thread_handle, std::size_t );
137
+
138
+ class sc_event;
139
+ class sc_event_list;
140
+ class sc_name_gen;
141
+ class sc_spawn_options;
142
+ class sc_unwind_exception;
143
+
144
+ //==============================================================================
145
+ // CLASS sc_throw_it<EXCEPT> - ARBITRARY EXCEPTION CLASS
146
+ //
147
+ // This class serves as a way of throwing an execption for an aribtrary type
148
+ // without knowing what that type is. A true virtual method in the base
149
+ // class is used to actually throw the execption. A pointer to the base
150
+ // class is used internally removing the necessity of knowing what the type
151
+ // of EXCEPT is for code internal to the library.
152
+ //
153
+ // Note the clone() true virtual method. This is used to allow instances
154
+ // of the sc_throw_it<EXCEPT> class to be easily garbage collected. Since
155
+ // an exception may be propogated to more than one process knowing when
156
+ // to garbage collect is non-trivial. So when a call is made to
157
+ // sc_process_handle::throw_it() an instance of sc_throw_it<EXCEPT> is
158
+ // allocated on the stack. For each process throwing the exception a copy is
159
+ // made via clone(). That allows those objects to be deleted by the individual
160
+ // processes when they are no longer needed (in this implementation of SystemC
161
+ // that deletion will occur each time a new exception is thrown ( see
162
+ // sc_thread_process::suspend_me() ).
163
+ //==============================================================================
164
+ class SC_API sc_throw_it_helper {
165
+ public:
166
+ virtual sc_throw_it_helper* clone() const = 0;
167
+ virtual void throw_it() = 0;
168
+ sc_throw_it_helper() {}
169
+ virtual ~sc_throw_it_helper() {}
170
+ };
171
+
172
+ template<typename EXCEPT>
173
+ class sc_throw_it : public sc_throw_it_helper
174
+ {
175
+ typedef sc_throw_it<EXCEPT> this_type;
176
+ public:
177
+ sc_throw_it( const EXCEPT& value ) : m_value(value) { }
178
+ virtual ~sc_throw_it() {}
179
+ virtual inline this_type* clone() const { return new this_type(m_value); }
180
+ virtual inline void throw_it() { throw m_value; }
181
+ protected:
182
+ EXCEPT m_value; // value to be thrown.
183
+ };
184
+
185
+ //==============================================================================
186
+ // CLASS sc_process_b - USER INITIATED DYNAMIC PROCESS SUPPORT:
187
+ //
188
+ // This class implements the base class for a threaded process_base process
189
+ // whose semantics are provided by the true virtual method semantics().
190
+ // Classes derived from this one will provide a version of semantics which
191
+ // implements the desired semantics. See the sc_spawn_xxx classes below.
192
+ //
193
+ // Notes:
194
+ // (1) Object instances of this class maintain a reference count of
195
+ // outstanding handles. When the handle count goes to zero the
196
+ // object will be deleted.
197
+ // (2) Descriptions of the methods and operators in this class appear with
198
+ // their implementations.
199
+ // (3) The m_sticky_reset field is used to handle synchronous resets that
200
+ // are enabled via the sc_process_handle::sync_reset_on() method. These
201
+ // resets are not generated by a signal, but rather are modal by
202
+ // method call: sync_reset_on - sync_reset_off.
203
+ //
204
+ //==============================================================================
205
+ class SC_API sc_process_b : public sc_object_host {
206
+ friend class sc_simcontext; // Allow static processes to have base.
207
+ friend class sc_cthread_process; // Child can access parent.
208
+ friend class sc_method_process; // Child can access parent.
209
+ friend class sc_process_handle; // Allow handles to modify ref. count.
210
+ friend class sc_process_table; // Allow process_table to modify ref. count.
211
+ friend class sc_thread_process; // Child can access parent.
212
+
213
+ friend class sc_event;
214
+ friend class sc_object;
215
+ friend class sc_port_base;
216
+ friend class sc_runnable;
217
+ friend class sc_sensitive;
218
+ friend class sc_sensitive_pos;
219
+ friend class sc_sensitive_neg;
220
+ friend class sc_module;
221
+ friend class sc_report_handler;
222
+ friend class sc_reset;
223
+ friend class sc_reset_finder;
224
+ friend class sc_unwind_exception;
225
+
226
+ friend SC_API sc_process_handle sc_get_current_process_handle();
227
+ friend void sc_thread_cor_fn( void* arg );
228
+ friend SC_API bool timed_out( sc_simcontext* );
229
+
230
+ friend SC_API void sc_suspend_all();
231
+ friend SC_API void sc_unsuspend_all();
232
+ friend SC_API void sc_suspendable();
233
+ friend SC_API void sc_unsuspendable();
234
+
235
+ public:
236
+ enum process_throw_type {
237
+ THROW_NONE = 0,
238
+ THROW_KILL,
239
+ THROW_USER,
240
+ THROW_ASYNC_RESET,
241
+ THROW_SYNC_RESET
242
+ };
243
+
244
+ enum process_state {
245
+ ps_bit_disabled = 1, // process is disabled.
246
+ ps_bit_ready_to_run = 2, // process is ready to run.
247
+ ps_bit_suspended = 4, // process is suspended.
248
+ ps_bit_zombie = 8, // process is a zombie.
249
+ ps_normal = 0 // must be zero.
250
+ };
251
+
252
+ enum reset_type { // types for sc_process_b::reset_process()
253
+ reset_asynchronous = 0, // asynchronous reset.
254
+ reset_synchronous_off, // turn off synchronous reset sticky bit.
255
+ reset_synchronous_on // turn on synchronous reset sticky bit.
256
+ };
257
+
258
+ enum trigger_t
259
+ {
260
+ STATIC,
261
+ EVENT,
262
+ OR_LIST,
263
+ AND_LIST,
264
+ TIMEOUT,
265
+ EVENT_TIMEOUT,
266
+ OR_LIST_TIMEOUT,
267
+ AND_LIST_TIMEOUT
268
+ };
269
+
270
+ protected:
271
+ enum spawn_t {
272
+ SPAWN_ELAB = 0x0, // spawned during elaboration (static process)
273
+ SPAWN_START = 0x1, // spawned during simulation start (dynamic process)
274
+ SPAWN_SIM = 0x2 // spawned during simulation (dynamic process)
275
+ };
276
+
277
+ public:
278
+ sc_process_b( const char* name_p, bool is_thread, bool free_host,
279
+ sc_entry_func method_p, sc_process_host* host_p,
280
+ const sc_spawn_options* opt_p );
281
+
282
+ protected:
283
+ // may not be deleted manually (called from destroy_process())
284
+ virtual ~sc_process_b();
285
+
286
+ public:
287
+ inline int current_state() { return m_state; }
288
+ bool dont_initialize() const { return m_dont_init; }
289
+ virtual void dont_initialize( bool dont );
290
+ std::string dump_state() const;
291
+ inline sc_curr_proc_kind proc_kind() const;
292
+ sc_event& reset_event();
293
+ sc_event& terminated_event();
294
+
295
+ public:
296
+ static inline sc_process_handle last_created_process_handle();
297
+
298
+ protected:
299
+ virtual void add_child_object( sc_object* );
300
+ virtual void add_child_event( sc_event* );
301
+ virtual bool remove_child_object( sc_object* );
302
+ virtual bool remove_child_event( sc_event* );
303
+
304
+ void add_static_event( const sc_event& );
305
+ bool dynamic() const { return m_dynamic_proc != SPAWN_ELAB; }
306
+ inline sc_report* get_last_report() { return m_last_report_p; }
307
+ inline bool is_disabled() const;
308
+ inline bool is_runnable() const;
309
+ static inline sc_process_b* last_created_process_base();
310
+ void remove_dynamic_events( bool skip_timeout = false );
311
+ void remove_static_events();
312
+ inline void set_last_report( sc_report* last_p )
313
+ {
314
+ delete m_last_report_p;
315
+ m_last_report_p = last_p;
316
+ }
317
+ inline bool timed_out() const;
318
+ void report_error( const char* msgid, const char* msg = "" ) const;
319
+ void report_immediate_self_notification() const;
320
+
321
+ protected: // process control methods:
322
+ virtual void disable_process(
323
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
324
+ void disconnect_process();
325
+ virtual void enable_process(
326
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
327
+ inline void initially_in_reset( bool async );
328
+ inline bool is_unwinding() const;
329
+ inline bool start_unwinding();
330
+ inline bool clear_unwinding();
331
+ virtual void kill_process(
332
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
333
+ void reset_changed( bool async, bool asserted );
334
+ void reset_process( reset_type rt,
335
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS );
336
+ virtual void resume_process(
337
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
338
+ virtual void suspend_process(
339
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
340
+ virtual void throw_user( const sc_throw_it_helper& helper,
341
+ sc_descendant_inclusion_info descendants = SC_NO_DESCENDANTS ) = 0;
342
+ virtual void throw_reset( bool async ) = 0;
343
+ virtual bool terminated() const;
344
+ void trigger_reset_event();
345
+
346
+ private:
347
+ void delete_process();
348
+ inline void reference_decrement();
349
+ inline void reference_increment();
350
+
351
+ private:
352
+ sc_process_b(const sc_process_b&) /* = delete */;
353
+ sc_process_b& operator=(const sc_process_b&) /* = delete */;
354
+
355
+ protected:
356
+ inline void semantics();
357
+
358
+ // debugging stuff:
359
+
360
+ public:
361
+ const char* file;
362
+ int lineno;
363
+ int proc_id;
364
+
365
+ protected:
366
+ int m_active_areset_n; // number of aresets active.
367
+ int m_active_reset_n; // number of resets active.
368
+ bool m_dont_init; // true: no initialize call.
369
+ spawn_t m_dynamic_proc; // SPAWN_ELAB, SPAWN_START, SPAWN_SIM
370
+ const sc_event* m_event_p; // Dynamic event waiting on.
371
+ int m_event_count; // number of events.
372
+ const sc_event_list* m_event_list_p; // event list waiting on.
373
+ sc_process_b* m_exist_p; // process existence link.
374
+ bool m_free_host; // free sc_semantic_host_p.
375
+ bool m_has_reset_signal; // has reset_signal_is.
376
+ bool m_has_stack; // true is stack present.
377
+ bool m_is_thread; // true if this is thread.
378
+ sc_report* m_last_report_p; // last report this process.
379
+ sc_curr_proc_kind m_process_kind; // type of process.
380
+ int m_references_n; // outstanding handles.
381
+ std::vector<sc_reset*> m_resets; // resets for process.
382
+ sc_event* m_reset_event_p; // reset event.
383
+ sc_event* m_resume_event_p; // resume event.
384
+ sc_process_b* m_runnable_p; // sc_runnable link
385
+ sc_process_host* m_semantics_host_p; // host for semantics.
386
+ sc_entry_func m_semantics_method_p; // method for semantics.
387
+ int m_state; // process state.
388
+ std::vector<const sc_event*> m_static_events; // static events waiting on.
389
+ bool m_sticky_reset; // see note 3 above.
390
+ sc_event* m_term_event_p; // terminated event.
391
+ sc_throw_it_helper* m_throw_helper_p; // what to throw.
392
+ process_throw_type m_throw_status; // exception throwing status
393
+ bool m_timed_out; // true if we timed out.
394
+ sc_event* m_timeout_event_p; // timeout event.
395
+ trigger_t m_trigger_type; // type of trigger using.
396
+ bool m_unwinding; // true if unwinding stack.
397
+
398
+ bool m_unsuspendable; // This process should not
399
+ // be suspended
400
+ bool m_suspend_all_req; // This process is
401
+ // requesting global suspension.
402
+
403
+ protected:
404
+ static sc_process_b* m_last_created_process_p; // Last process created.
405
+ };
406
+
407
+
408
+ //------------------------------------------------------------------------------
409
+ //"sc_process_b::XXXX_child_YYYYY"
410
+ //
411
+ // These methods provide child object/event support.
412
+ //------------------------------------------------------------------------------
413
+
414
+ inline void
415
+ sc_process_b::add_child_object( sc_object* object_p )
416
+ {
417
+ sc_object_host::add_child_object( object_p );
418
+ reference_increment();
419
+ }
420
+
421
+ inline void
422
+ sc_process_b::add_child_event( sc_event* event_p )
423
+ {
424
+ sc_object_host::add_child_event( event_p );
425
+ reference_increment();
426
+ }
427
+
428
+ inline bool
429
+ sc_process_b::remove_child_object( sc_object* object_p )
430
+ {
431
+ if ( sc_object_host::remove_child_object( object_p ) ) {
432
+ reference_decrement();
433
+ return true;
434
+ }
435
+ return false;
436
+ }
437
+
438
+ inline bool
439
+ sc_process_b::remove_child_event( sc_event* event_p )
440
+ {
441
+ if ( sc_object_host::remove_child_event( event_p ) ) {
442
+ reference_decrement();
443
+ return true;
444
+ }
445
+ return false;
446
+ }
447
+
448
+ //------------------------------------------------------------------------------
449
+ //"sc_process_b::initially_in_reset"
450
+ //
451
+ // This inline method is a callback to indicate that a reset is active at
452
+ // start up. This is because the signal will have been initialized before
453
+ // a reset linkage for it is set up, so we won't get a reset_changed()
454
+ // callback.
455
+ // async = true if this an asynchronous reset.
456
+ //------------------------------------------------------------------------------
457
+ inline void sc_process_b::initially_in_reset( bool async )
458
+ {
459
+ if ( async )
460
+ m_active_areset_n++;
461
+ else
462
+ m_active_reset_n++;
463
+ }
464
+
465
+ //------------------------------------------------------------------------------
466
+ //"sc_process_b::is_disabled"
467
+ //
468
+ // This method returns true if this process is disabled.
469
+ //------------------------------------------------------------------------------
470
+ inline bool sc_process_b::is_disabled() const
471
+ {
472
+ return (m_state & ps_bit_disabled) ? true : false;
473
+ }
474
+
475
+ //------------------------------------------------------------------------------
476
+ //"sc_process_b::is_runnable"
477
+ //
478
+ // This method returns true if this process is runnable. That is indicated
479
+ // by a non-zero m_runnable_p field.
480
+ //------------------------------------------------------------------------------
481
+ inline bool sc_process_b::is_runnable() const
482
+ {
483
+ return m_runnable_p != 0;
484
+ }
485
+
486
+ //------------------------------------------------------------------------------
487
+ //"sc_process_b::is_unwinding"
488
+ //
489
+ // This method returns true if this process is unwinding from a kill or reset.
490
+ //------------------------------------------------------------------------------
491
+ inline bool sc_process_b::is_unwinding() const
492
+ {
493
+ return m_unwinding;
494
+ }
495
+
496
+ //------------------------------------------------------------------------------
497
+ //"sc_process_b::start_unwinding"
498
+ //
499
+ // This method flags that this object instance should start unwinding if the
500
+ // current throw status requires an unwind.
501
+ //
502
+ // Result is true if the flag is set, false if the flag is already set.
503
+ //------------------------------------------------------------------------------
504
+ inline bool sc_process_b::start_unwinding()
505
+ {
506
+ if ( !m_unwinding )
507
+ {
508
+ switch( m_throw_status )
509
+ {
510
+ case THROW_KILL:
511
+ case THROW_ASYNC_RESET:
512
+ case THROW_SYNC_RESET:
513
+ m_unwinding = true;
514
+ return true;
515
+ case THROW_USER:
516
+ default:
517
+ break;
518
+ }
519
+ }
520
+ return false;
521
+ }
522
+
523
+ //------------------------------------------------------------------------------
524
+ //"sc_process_b::clear_unwinding"
525
+ //
526
+ // This method clears this object instance's throw status and always returns
527
+ // true.
528
+ //------------------------------------------------------------------------------
529
+ inline bool sc_process_b::clear_unwinding()
530
+ {
531
+ m_unwinding = false;
532
+ return true;
533
+ }
534
+
535
+
536
+ //------------------------------------------------------------------------------
537
+ //"sc_process_b::last_created_process_base"
538
+ //
539
+ // This virtual method returns the sc_process_b pointer for the last
540
+ // created process. It is only used internally by the simulator.
541
+ //------------------------------------------------------------------------------
542
+ inline sc_process_b* sc_process_b::last_created_process_base()
543
+ {
544
+ return m_last_created_process_p;
545
+ }
546
+
547
+
548
+
549
+ //------------------------------------------------------------------------------
550
+ //"sc_process_b::proc_kind"
551
+ //
552
+ // This method returns the kind of this process.
553
+ //------------------------------------------------------------------------------
554
+ inline sc_curr_proc_kind sc_process_b::proc_kind() const
555
+ {
556
+ return m_process_kind;
557
+ }
558
+
559
+
560
+ //------------------------------------------------------------------------------
561
+ //"sc_process_b::reference_decrement"
562
+ //
563
+ // This inline method decrements the number of outstanding references to this
564
+ // object instance. If the number of references goes to zero, this object
565
+ // can be deleted in "sc_process_b::delete_process()".
566
+ //------------------------------------------------------------------------------
567
+ inline void sc_process_b::reference_decrement()
568
+ {
569
+ m_references_n--;
570
+ if ( m_references_n == 0 ) delete_process();
571
+ }
572
+
573
+
574
+ //------------------------------------------------------------------------------
575
+ //"sc_process_b::reference_increment"
576
+ //
577
+ // This inline method increments the number of outstanding references to this
578
+ // object instance.
579
+ //------------------------------------------------------------------------------
580
+ inline void sc_process_b::reference_increment()
581
+ {
582
+ sc_assert(m_references_n != 0);
583
+ m_references_n++;
584
+ }
585
+
586
+ //------------------------------------------------------------------------------
587
+ //"sc_process_b::semantics"
588
+ //
589
+ // This inline method invokes the semantics for this object instance.
590
+ // We check to see if we are initially in reset and then invoke the
591
+ // process semantics.
592
+ //
593
+ // Notes:
594
+ // (1) For a description of the process reset mechanism see the top of
595
+ // the file sc_reset.cpp.
596
+ //------------------------------------------------------------------------------
597
+ struct SC_API scoped_flag
598
+ {
599
+ scoped_flag( bool& b ) : ref(b){ ref = true; }
600
+ ~scoped_flag() { ref = false; }
601
+ bool& ref;
602
+ private:
603
+ scoped_flag& operator=(const scoped_flag&) /* = delete */;
604
+ };
605
+ inline void sc_process_b::semantics()
606
+ {
607
+
608
+ // within this function, the process has a stack associated
609
+
610
+ scoped_flag scoped_stack_flag( m_has_stack );
611
+
612
+ sc_assert( m_process_kind != SC_NO_PROC_ );
613
+
614
+ // Determine the reset status of this object instance and potentially
615
+ // trigger its notify event:
616
+
617
+ // See if we need to trigger the notify event:
618
+
619
+ if ( m_reset_event_p &&
620
+ ( (m_throw_status == THROW_SYNC_RESET) ||
621
+ (m_throw_status == THROW_ASYNC_RESET) )
622
+ ) {
623
+ trigger_reset_event();
624
+ }
625
+
626
+ // Set the new reset status of this object based on the reset counts:
627
+
628
+ m_throw_status = m_active_areset_n ? THROW_ASYNC_RESET :
629
+ ( m_active_reset_n ? THROW_SYNC_RESET : THROW_NONE);
630
+
631
+ // Dispatch the actual semantics for the process:
632
+
633
+ (m_semantics_host_p->*m_semantics_method_p)();
634
+ }
635
+
636
+
637
+ //------------------------------------------------------------------------------
638
+ //"sc_process_b::terminated"
639
+ //
640
+ // This inline method returns true if this object has terminated.
641
+ //------------------------------------------------------------------------------
642
+ inline bool sc_process_b::terminated() const
643
+ {
644
+ return (m_state & ps_bit_zombie) != 0;
645
+ }
646
+
647
+
648
+ //------------------------------------------------------------------------------
649
+ //"sc_process_b::timed_out"
650
+ //
651
+ // This inline method returns true if this object instance timed out.
652
+ //------------------------------------------------------------------------------
653
+ inline bool sc_process_b::timed_out() const
654
+ {
655
+ return m_timed_out;
656
+ }
657
+
658
+ } // namespace sc_core
659
+
660
+ #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN)
661
+ #pragma warning(pop)
662
+ #endif
663
+
664
+ /*****************************************************************************
665
+
666
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
667
+ changes you are making here.
668
+
669
+ Name, Affiliation, Date: Andy Goodrich, Forte Design Systems, 12 Aug 05
670
+ Description of Modification: This is the rewrite of process support. It
671
+ contains some code from the original
672
+ sc_process.h by Stan Liao, and the now-defunct
673
+ sc_process_b.h by Stan Liao and Martin
674
+ Janssen, all of Synopsys, Inc., It also contains
675
+ code from the original sc_process_b.h by
676
+ Andy Goodrich of Forte Design Systems and
677
+ Bishnupriya Bhattacharya of Cadence Design
678
+ Systems.
679
+
680
+ Name, Affiliation, Date:
681
+ Description of Modification:
682
+
683
+ *****************************************************************************/
684
+
685
+ // $Log: sc_process.h,v $
686
+ // Revision 1.36 2011/08/26 22:44:30 acg
687
+ // Torsten Maehne: eliminate unused argument warning.
688
+ //
689
+ // Revision 1.35 2011/08/26 20:46:10 acg
690
+ // Andy Goodrich: moved the modification log to the end of the file to
691
+ // eliminate source line number skew when check-ins are done.
692
+ //
693
+ // Revision 1.34 2011/08/24 22:05:51 acg
694
+ // Torsten Maehne: initialization changes to remove warnings.
695
+ //
696
+ // Revision 1.33 2011/08/15 16:43:24 acg
697
+ // Torsten Maehne: changes to remove unused argument warnings.
698
+ //
699
+ // Revision 1.32 2011/07/24 11:20:03 acg
700
+ // Philipp A. Hartmann: process control error message improvements:
701
+ // (1) Downgrade error to warning for re-kills of processes.
702
+ // (2) Add process name to process messages.
703
+ // (3) drop some superfluous colons in messages.
704
+ //
705
+ // Revision 1.31 2011/04/13 02:44:26 acg
706
+ // Andy Goodrich: added m_unwinding flag in place of THROW_NOW because the
707
+ // throw status will be set back to THROW_*_RESET if reset is active and
708
+ // the check for an unwind being complete was expecting THROW_NONE as the
709
+ // clearing of THROW_NOW.
710
+ //
711
+ // Revision 1.30 2011/04/11 22:07:27 acg
712
+ // Andy Goodrich: check for reset event notification before resetting the
713
+ // throw_status value.
714
+ //
715
+ // Revision 1.29 2011/04/10 22:17:36 acg
716
+ // Andy Goodrich: added trigger_reset_event() to allow sc_process.h to
717
+ // contain the run_process() inline method. sc_process.h cannot have
718
+ // sc_simcontext information because of recursive includes.
719
+ //
720
+ // Revision 1.28 2011/04/08 22:34:06 acg
721
+ // Andy Goodrich: moved the semantics() method to this file and made it
722
+ // an inline method. Added reset processing to the semantics() method.
723
+ //
724
+ // Revision 1.27 2011/04/08 18:24:48 acg
725
+ // Andy Goodrich: moved reset_changed() to .cpp since it needs visibility
726
+ // to sc_simcontext.
727
+ //
728
+ // Revision 1.26 2011/04/01 21:24:57 acg
729
+ // Andy Goodrich: removed unused code.
730
+ //
731
+ // Revision 1.25 2011/03/28 13:02:51 acg
732
+ // Andy Goodrich: Changes for disable() interactions.
733
+ //
734
+ // Revision 1.24 2011/03/20 13:43:23 acg
735
+ // Andy Goodrich: added async_signal_is() plus suspend() as a corner case.
736
+ //
737
+ // Revision 1.23 2011/03/12 21:07:51 acg
738
+ // Andy Goodrich: changes to kernel generated event support.
739
+ //
740
+ // Revision 1.22 2011/03/08 20:49:31 acg
741
+ // Andy Goodrich: implement coarse checking for synchronous reset - suspend
742
+ // interaction.
743
+ //
744
+ // Revision 1.21 2011/03/07 17:38:43 acg
745
+ // Andy Goodrich: tightening up of checks for undefined interaction between
746
+ // synchronous reset and suspend.
747
+ //
748
+ // Revision 1.20 2011/03/06 19:57:11 acg
749
+ // Andy Goodrich: refinements for the illegal suspend - synchronous reset
750
+ // interaction.
751
+ //
752
+ // Revision 1.19 2011/03/05 19:44:20 acg
753
+ // Andy Goodrich: changes for object and event naming and structures.
754
+ //
755
+ // Revision 1.18 2011/02/19 08:30:53 acg
756
+ // Andy Goodrich: Moved process queueing into trigger_static from
757
+ // sc_event::notify.
758
+ //
759
+ // Revision 1.17 2011/02/18 20:27:14 acg
760
+ // Andy Goodrich: Updated Copyrights.
761
+ //
762
+ // Revision 1.16 2011/02/18 20:10:44 acg
763
+ // Philipp A. Hartmann: force return expression to be a bool to keep MSVC
764
+ // happy.
765
+ //
766
+ // Revision 1.15 2011/02/17 19:52:45 acg
767
+ // Andy Goodrich:
768
+ // (1) Simplified process control usage.
769
+ // (2) Changed dump_status() to dump_state() with new signature.
770
+ //
771
+ // Revision 1.14 2011/02/16 22:37:30 acg
772
+ // Andy Goodrich: clean up to remove need for ps_disable_pending.
773
+ //
774
+ // Revision 1.13 2011/02/13 21:47:37 acg
775
+ // Andy Goodrich: update copyright notice.
776
+ //
777
+ // Revision 1.12 2011/02/13 21:41:34 acg
778
+ // Andy Goodrich: get the log messages for the previous check in correct.
779
+ //
780
+ // Revision 1.11 2011/02/13 21:32:24 acg
781
+ // Andy Goodrich: moved sc_process_b::reset_process() implementation
782
+ // from header to cpp file . Added dump_status() to print out the status of a
783
+ // process.
784
+ //
785
+ // Revision 1.10 2011/02/11 13:25:24 acg
786
+ // Andy Goodrich: Philipp A. Hartmann's changes:
787
+ // (1) Removal of SC_CTHREAD method overloads.
788
+ // (2) New exception processing code.
789
+ //
790
+ // Revision 1.9 2011/02/04 15:27:36 acg
791
+ // Andy Goodrich: changes for suspend-resume semantics.
792
+ //
793
+ // Revision 1.8 2011/02/01 21:06:12 acg
794
+ // Andy Goodrich: new layout for the process_state enum.
795
+ //
796
+ // Revision 1.7 2011/01/25 20:50:37 acg
797
+ // Andy Goodrich: changes for IEEE 1666 2011.
798
+ //
799
+ // Revision 1.6 2011/01/19 23:21:50 acg
800
+ // Andy Goodrich: changes for IEEE 1666 2011
801
+ //
802
+ // Revision 1.5 2011/01/18 20:10:45 acg
803
+ // Andy Goodrich: changes for IEEE1666_2011 semantics.
804
+ //
805
+ // Revision 1.4 2010/07/22 20:02:33 acg
806
+ // Andy Goodrich: bug fixes.
807
+ //
808
+ // Revision 1.3 2009/05/22 16:06:29 acg
809
+ // Andy Goodrich: process control updates.
810
+ //
811
+ // Revision 1.2 2008/05/22 17:06:26 acg
812
+ // Andy Goodrich: updated copyright notice to include 2008.
813
+ //
814
+ // Revision 1.1.1.1 2006/12/15 20:20:05 acg
815
+ // SystemC 2.3
816
+ //
817
+ // Revision 1.11 2006/05/08 17:58:10 acg
818
+ // Andy Goodrich: added David Long's forward declarations for friend
819
+ // functions, methods, and operators to keep the Microsoft compiler happy.
820
+ //
821
+ // Revision 1.10 2006/04/28 23:29:01 acg
822
+ // Andy Goodrich: added an sc_core:: prefix to SC_FUNC_PTR in the
823
+ // SC_MAKE_FUNC_PTR macro to allow its transpareuse outside of the sc_core
824
+ // namespace.
825
+ //
826
+ // Revision 1.9 2006/04/28 21:52:57 acg
827
+ // Andy Goodrich: changed SC_MAKE_FUNC_PTR to use a static cast to address
828
+ // and AIX issue wrt sc_module's inherited classes.
829
+ //
830
+ // Revision 1.8 2006/04/20 17:08:17 acg
831
+ // Andy Goodrich: 3.0 style process changes.
832
+ //
833
+ // Revision 1.7 2006/04/11 23:13:21 acg
834
+ // Andy Goodrich: Changes for reduced reset support that only includes
835
+ // sc_cthread, but has preliminary hooks for expanding to method and thread
836
+ // processes also.
837
+ //
838
+ // Revision 1.6 2006/03/13 20:26:50 acg
839
+ // Andy Goodrich: Addition of forward class declarations, e.g.,
840
+ // sc_reset, to keep gcc 4.x happy.
841
+ //
842
+ // Revision 1.5 2006/01/31 20:09:10 acg
843
+ // Andy Goodrich: added explaination of static vs dynamic waits to
844
+ // sc_process_b::trigger_static.
845
+ //
846
+ // Revision 1.4 2006/01/24 20:49:05 acg
847
+ // Andy Goodrich: changes to remove the use of deprecated features within the
848
+ // simulator, and to issue warning messages when deprecated features are used.
849
+ //
850
+ // Revision 1.3 2006/01/13 18:44:30 acg
851
+ // Added $Log to record CVS changes into the source.
852
+
853
+ #endif // SC_PROCESS_H_INCLUDED_