summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/systemc/core/sc_process_handle.cc23
-rw-r--r--src/systemc/ext/core/_using.hh5
-rw-r--r--src/systemc/ext/core/sc_process_handle.hh28
-rw-r--r--src/systemc/tests/working.filt5
4 files changed, 57 insertions, 4 deletions
diff --git a/src/systemc/core/sc_process_handle.cc b/src/systemc/core/sc_process_handle.cc
index 06fd0b30f..cf81f9ff5 100644
--- a/src/systemc/core/sc_process_handle.cc
+++ b/src/systemc/core/sc_process_handle.cc
@@ -63,6 +63,29 @@ sc_unwind_exception::~sc_unwind_exception() throw()
}
+const char *
+sc_process_b::name()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+const char *
+sc_process_b::kind()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+
+sc_process_b *
+sc_get_curr_process_handle()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return nullptr;
+}
+
+
sc_process_handle::sc_process_handle()
{
warn("%s not implemented.\n", __PRETTY_FUNCTION__);
diff --git a/src/systemc/ext/core/_using.hh b/src/systemc/ext/core/_using.hh
index efc6341cd..255df336f 100644
--- a/src/systemc/ext/core/_using.hh
+++ b/src/systemc/ext/core/_using.hh
@@ -124,6 +124,11 @@ using sc_core::sc_descendent_inclusion_info;
using sc_core::SC_NO_DESCENDANTS;
using sc_core::SC_INCLUDE_DESCENDANTS;
using sc_core::sc_unwind_exception;
+using sc_core::sc_process_b;
+using sc_core::sc_get_curr_process_handle;
+using sc_core::sc_get_current_process_b;
+using sc_core::sc_curr_proc_info;
+using sc_core::sc_curr_proc_handle;
using sc_core::sc_process_handle;
using sc_core::sc_get_current_process_handle;
using sc_core::sc_is_unwinding;
diff --git a/src/systemc/ext/core/sc_process_handle.hh b/src/systemc/ext/core/sc_process_handle.hh
index 55fa2b7db..e577b9e47 100644
--- a/src/systemc/ext/core/sc_process_handle.hh
+++ b/src/systemc/ext/core/sc_process_handle.hh
@@ -77,6 +77,34 @@ class sc_unwind_exception : public std::exception
sc_unwind_exception();
};
+// Deprecated
+// An incomplete version of sc_process_b to satisfy the tests.
+class sc_process_b
+{
+ public:
+ const char *file;
+ int lineno;
+ const char *name();
+ const char *kind();
+};
+
+// Deprecated
+sc_process_b *sc_get_curr_process_handle();
+static inline sc_process_b *
+sc_get_current_process_b()
+{
+ return sc_get_curr_process_handle();
+}
+
+// Deprecated/nonstandard
+struct sc_curr_proc_info
+{
+ sc_process_b *process_handle;
+ sc_curr_proc_kind kind;
+ sc_curr_proc_info() : process_handle(NULL), kind(SC_NO_PROC_) {}
+};
+typedef const sc_curr_proc_info *sc_curr_proc_handle;
+
class sc_process_handle
{
private:
diff --git a/src/systemc/tests/working.filt b/src/systemc/tests/working.filt
index 960476878..801a05176 100644
--- a/src/systemc/tests/working.filt
+++ b/src/systemc/tests/working.filt
@@ -8,10 +8,6 @@ name == "sc_elab_and_sim",
path.startswith("systemc/tracing/wif_trace"),
path.startswith("systemc/misc/stars/wif_trace"),
-# These tests refers to sc_get_current_process_b which is a deprecated type and
-# something we're not currently planning to support.
-path.startswith("systemc/kernel/sc_process_b"),
-
# Phase callbacks are an experimental feature. Also calling all the interested
# sc_objects whenever time advances would add a non-trivial amount of
# complexity and is probably not worth implementing in general.
@@ -22,6 +18,7 @@ path in (
# Uses sc_get_curr_simcontext.
"systemc/kernel/sc_object_manager/test01",
"systemc/kernel/sc_name_gen/test1",
+ "systemc/kernel/sc_process_b/test2",
# Uses sc_elab_and_sim.
"systemc/kernel/sc_main_main",