systemc: Add the nonstandard sc_trace_params and sc_trace_params_vec.
authorGabe Black <gabeblack@google.com>
Sat, 16 Jun 2018 06:18:24 +0000 (23:18 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 28 Aug 2018 21:22:19 +0000 (21:22 +0000)
These two types are supposedly only for internal use in the Accellera
implementation based on a big warning in all caps, but they still
appear in the tests and examples in that version of systemc.

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

src/systemc/ext/channel/sc_signal.hh

index de571b23e208887ba33a268949ae95af32b5d438..b41af56bb02e2639989ba6f24a294c9855f7e3d6 100644 (file)
@@ -31,6 +31,8 @@
 #define __SYSTEMC_EXT_CHANNEL_SC_SIGNAL_HH__
 
 #include <iostream>
+#include <string>
+#include <vector>
 
 #include "../core/sc_module.hh" // for sc_gen_unique_name
 #include "../core/sc_prim.hh"
@@ -41,6 +43,22 @@ namespace sc_core
 {
 
 class sc_port_base;
+class sc_trace_file;
+
+// Nonstandard
+// Despite having a warning "FOR INTERNAL USE ONLY!" in all caps above this
+// class definition in the Accellera implementation, it appears in their
+// examples and test programs, and so we need to have it here as well.
+struct sc_trace_params
+{
+    sc_trace_file *tf;
+    std::string name;
+
+    sc_trace_params(sc_trace_file *tf, const std::string &name) :
+        tf(tf), name(name)
+    {}
+};
+typedef std::vector<sc_trace_params *> sc_trace_params_vec;
 
 template <class T, sc_writer_policy WRITER_POLICY=SC_ONE_WRITER>
 class sc_signal : public sc_signal_inout_if<T>,