systemc: Partially implement SC_FORK and SC_JOIN.
authorGabe Black <gabeblack@google.com>
Thu, 14 Jun 2018 02:10:38 +0000 (19:10 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 15 Aug 2018 01:37:50 +0000 (01:37 +0000)
These macros need to expand to some minimal amount of wrapping code to
make the regression tests syntactically legal and compile.

Change-Id: I0b5569704b129d9c315526fc3363ef846a1b5c65
Reviewed-on: https://gem5-review.googlesource.com/11184
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/ext/core/sc_spawn.hh

index f1b110b196f0129a9538fbd3a61f1e17469c4999..0463dc133e7a1a2bfde06d785468c4f46ae527b1 100644 (file)
@@ -105,8 +105,16 @@ sc_spawn(typename T::result_type *r_p, T object, const char *name_p=nullptr,
 #define sc_ref(r) boost::ref(r)
 #define sc_cref(r) boost::cref(r)
 
-#define SC_FORK /* Implementation defined */
-#define SC_JOIN /* Implementation defined */
+#define SC_FORK \
+{ \
+    ::sc_core::sc_process_handle forkees[] = {
+
+#define SC_JOIN \
+    }; /* TODO wait for the forkees. */ \
+}
+
+// Non-standard
+#define SC_CJOIN SC_JOIN
 
 } // namespace sc_core