summaryrefslogtreecommitdiff
path: root/src/systemc/utils
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-05-18 02:12:34 -0700
committerGabe Black <gabeblack@google.com>2018-08-08 10:07:26 +0000
commit7adb1b250b712920ea5d685f146ad6df55346393 (patch)
treec431de9f29f2c7d1dc5a6e581cfcf7031bb26a49 /src/systemc/utils
parent4b2e28307d0a1c2b31e403e8e394261eb363a7a9 (diff)
downloadgem5-7adb1b250b712920ea5d685f146ad6df55346393.tar.xz
systemc: Stub out all the standard utilility classes and functions.
Change-Id: I9e9724edb6281e0b0a6bae5546b0ede77d295c12 Reviewed-on: https://gem5-review.googlesource.com/10841 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/utils')
-rw-r--r--src/systemc/utils/SConscript36
-rw-r--r--src/systemc/utils/functions.cc53
-rw-r--r--src/systemc/utils/sc_report.cc119
-rw-r--r--src/systemc/utils/sc_report_handler.cc215
-rw-r--r--src/systemc/utils/sc_trace_file.cc325
-rw-r--r--src/systemc/utils/sc_vector.cc49
-rw-r--r--src/systemc/utils/warn_unimpl.cc42
7 files changed, 839 insertions, 0 deletions
diff --git a/src/systemc/utils/SConscript b/src/systemc/utils/SConscript
new file mode 100644
index 000000000..f925293ac
--- /dev/null
+++ b/src/systemc/utils/SConscript
@@ -0,0 +1,36 @@
+# Copyright 2018 Google, Inc.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Gabe Black
+
+Import('*')
+
+if env['USE_SYSTEMC']:
+ Source('functions.cc')
+ Source('sc_report.cc')
+ Source('sc_report_handler.cc')
+ Source('sc_trace_file.cc')
+ Source('sc_vector.cc')
+ Source('warn_unimpl.cc')
diff --git a/src/systemc/utils/functions.cc b/src/systemc/utils/functions.cc
new file mode 100644
index 000000000..dca7e20ce
--- /dev/null
+++ b/src/systemc/utils/functions.cc
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "systemc/ext/utils/functions.hh"
+
+namespace sc_core
+{
+
+const unsigned int sc_version_major = SC_VERSION_MAJOR;
+const unsigned int sc_version_minor = SC_VERSION_MINOR;
+const unsigned int sc_version_patch = SC_VERSION_PATCH;
+const std::string sc_version_originator = SC_VERSION_ORIGINATOR;
+const std::string sc_version_release_date = SC_VERSION_RELEASE_DATE;
+const std::string sc_version_prerelease = SC_VERSION_PRERELEASE;
+const bool sc_is_prerelease = SC_IS_PRERELEASE;
+const std::string sc_version_string = SC_VERSION;
+const std::string sc_copyright_string = SC_COPYRIGHT;
+
+const char *
+sc_version()
+{
+ static const char systemc_version[] =
+ "SystemC " SC_VERSION " --- " __DATE__ " " __TIME__;
+ return systemc_version;
+}
+
+} // namespace sc_core
diff --git a/src/systemc/utils/sc_report.cc b/src/systemc/utils/sc_report.cc
new file mode 100644
index 000000000..0e6b8b0bd
--- /dev/null
+++ b/src/systemc/utils/sc_report.cc
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "base/logging.hh"
+#include "systemc/ext/utils/sc_report.hh"
+
+namespace sc_core
+{
+
+sc_report::sc_report(const sc_report &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+sc_report &
+sc_report::operator = (const sc_report &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return *this;
+}
+
+sc_report::~sc_report() throw() {}
+
+sc_severity
+sc_report::get_severity() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_FATAL;
+}
+
+const char *
+sc_report::get_msg_type() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+const char *
+sc_report::get_msg() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+int
+sc_report::get_verbosity() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_NONE;
+}
+
+const char *
+sc_report::get_file_name() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+int
+sc_report::get_line_number() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+const sc_time &
+sc_report::get_time() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return *(const sc_time *)nullptr;
+}
+
+const char *
+sc_report::get_process_name() const
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+const char *
+sc_report::what() const throw()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return "";
+}
+
+void
+sc_abort()
+{
+ panic("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+} // namespace sc_core
diff --git a/src/systemc/utils/sc_report_handler.cc b/src/systemc/utils/sc_report_handler.cc
new file mode 100644
index 000000000..3bb905044
--- /dev/null
+++ b/src/systemc/utils/sc_report_handler.cc
@@ -0,0 +1,215 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "base/logging.hh"
+#include "systemc/ext/utils/sc_report_handler.hh"
+
+namespace sc_core
+{
+
+void
+sc_report_handler::report(sc_severity, const char *msg_type, const char *msg,
+ const char *file, int line)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_report_handler::report(sc_severity, const char *msg_type, const char *msg,
+ int verbosity, const char *file, int line)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+sc_actions
+sc_report_handler::set_actions(sc_severity, sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_actions
+sc_report_handler::set_actions(const char *msg_type, sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_actions
+sc_report_handler::set_actions(const char *msg_type, sc_severity, sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+int
+sc_report_handler::stop_after(sc_severity, int limit)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::stop_after(const char *msg_type, int limit)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::stop_after(const char *msg_type, sc_severity, sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::get_count(sc_severity)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::get_count(const char *msg_type)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::get_count(const char *msg_type, sc_severity)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::set_verbosity_level(int)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+int
+sc_report_handler::get_verbosity_level()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return 0;
+}
+
+
+sc_actions
+sc_report_handler::suppress(sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_actions
+sc_report_handler::suppress()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_actions
+sc_report_handler::force(sc_actions)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_actions
+sc_report_handler::force()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+
+void
+sc_report_handler::set_handler(sc_report_handler_proc)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_report_handler::default_handler(const sc_report &, const sc_actions &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+sc_actions
+sc_report_handler::get_new_action_id()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return SC_UNSPECIFIED;
+}
+
+sc_report *
+sc_report_handler::get_cached_report()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return nullptr;
+}
+
+void
+sc_report_handler::clear_cached_report()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+bool
+sc_report_handler::set_log_file_name(const char *)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return false;
+}
+
+const char *
+sc_report_handler::get_log_file_name()
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return nullptr;
+}
+
+void
+sc_interrupt_here(const char *msg_type, sc_severity)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_stop_here(const char *msg_type, sc_severity)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+} // namespace sc_core
diff --git a/src/systemc/utils/sc_trace_file.cc b/src/systemc/utils/sc_trace_file.cc
new file mode 100644
index 000000000..3b09d951d
--- /dev/null
+++ b/src/systemc/utils/sc_trace_file.cc
@@ -0,0 +1,325 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "base/logging.hh"
+#include "systemc/ext/utils/sc_trace_file.hh"
+
+namespace sc_core
+{
+
+sc_trace_file *
+sc_create_vcd_trace_file(const char *name)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+ return nullptr;
+}
+
+void
+sc_close_vcd_trace_file(sc_trace_file *tf)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_write_comment(sc_trace_file *tf, const std::string &comment)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const bool &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const bool *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const float &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const float *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const double &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const double *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_logic &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_logic *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_int_base &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_int_base *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_uint_base &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_uint_base *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_signed &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_signed *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_unsigned &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_unsigned *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_bv_base &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_bv_base *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_lv_base &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_lv_base *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxval &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxval *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxval_fast &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxval_fast *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxnum &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxnum *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxnum_fast &, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::sc_fxnum_fast *, const std::string &)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const char &, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const char *, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const short &, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const short *, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const int &, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const int *, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const long &, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const long *, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::int64 &, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::int64 *, const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::uint64 &,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_dt::uint64 *,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_signal_in_if<char> &,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_signal_in_if<short> &,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_signal_in_if<int> &,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+void
+sc_trace(sc_trace_file *, const sc_signal_in_if<long> &,
+ const std::string &, int width)
+{
+ warn("%s not implemented.\n", __PRETTY_FUNCTION__);
+}
+
+} // namespace sc_core
diff --git a/src/systemc/utils/sc_vector.cc b/src/systemc/utils/sc_vector.cc
new file mode 100644
index 000000000..ed59b734f
--- /dev/null
+++ b/src/systemc/utils/sc_vector.cc
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "systemc/ext/utils/sc_vector.hh"
+
+namespace sc_core
+{
+
+sc_vector_base::size_type
+sc_vector_base::size() const
+{
+ sc_utils_warn_unimpl(__PRETTY_FUNCTION__);
+ return 0;
+}
+
+const std::vector<sc_object *> &
+sc_vector_base::get_elements() const
+{
+ sc_utils_warn_unimpl(__PRETTY_FUNCTION__);
+ return *(const std::vector<sc_object *> *)nullptr;
+}
+
+} // namespace sc_core
diff --git a/src/systemc/utils/warn_unimpl.cc b/src/systemc/utils/warn_unimpl.cc
new file mode 100644
index 000000000..f96e60487
--- /dev/null
+++ b/src/systemc/utils/warn_unimpl.cc
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2018 Google, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Gabe Black
+ */
+
+#include "base/logging.hh"
+#include "systemc/ext/utils/warn_unimpl.hh"
+
+namespace sc_core
+{
+
+void
+sc_utils_warn_unimpl(const char *func)
+{
+ warn("%s not implemented.\n", func);
+}
+
+} // namespace sc_core