diff --git a/src/systemc/ext/core/_core.hh b/src/systemc/ext/core/_core.hh
new file mode 100644
index 0000000..648328c
--- /dev/null
+++ b/src/systemc/ext/core/_core.hh
@@ -0,0 +1,48 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE__CORE_HH__
+#define __SYSTEMC_EXT_CORE__CORE_HH__
+
+#include "sc_attr.hh"
+#include "sc_event.hh"
+#include "sc_export.hh"
+#include "sc_interface.hh"
+#include "sc_main.hh"
+#include "sc_module.hh"
+#include "sc_module_name.hh"
+#include "sc_object.hh"
+#include "sc_port.hh"
+#include "sc_prim.hh"
+#include "sc_process_handle.hh"
+#include "sc_sensitive.hh"
+#include "sc_spawn.hh"
+#include "sc_time.hh"
+
+#endif  //__SYSTEMC_EXT_CORE__CORE_HH__
diff --git a/src/systemc/ext/core/_using.hh b/src/systemc/ext/core/_using.hh
new file mode 100644
index 0000000..3f8bfec
--- /dev/null
+++ b/src/systemc/ext/core/_using.hh
@@ -0,0 +1,109 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE__USING_HH__
+#define __SYSTEMC_EXT_CORE__USING_HH__
+
+#include "_core.hh"
+
+using sc_core::sc_attr_base;
+using sc_core::sc_attribute;
+using sc_core::sc_attr_cltn;
+
+using sc_core::sc_event_finder;
+using sc_core::sc_event_finder_t;
+using sc_core::sc_event_and_list;
+using sc_core::sc_event_or_list;
+using sc_core::sc_event_and_expr;
+using sc_core::sc_event_or_expr;
+using sc_core::sc_event;
+using sc_core::sc_get_top_level_events;
+using sc_core::sc_find_event;
+
+using sc_core::sc_export_base;
+using sc_core::sc_export;
+
+using sc_core::sc_interface;
+
+using sc_core::sc_argc;
+using sc_core::sc_argv;
+
+using sc_core::sc_bind_proxy;
+using sc_core::SC_BIND_PROXY_NIL;
+using sc_core::sc_module;
+using sc_core::next_trigger;
+using sc_core::wait;
+using sc_core::sc_gen_unique_name;
+using sc_core::sc_behavior;
+using sc_core::sc_channel;
+using sc_core::sc_start_of_simulation_invoked;
+using sc_core::sc_end_of_simulation_invoked;
+
+using sc_core::sc_module_name;
+
+using sc_core::sc_object;
+using sc_core::sc_get_top_level_objects;
+using sc_core::sc_find_object;
+
+using sc_core::sc_port_policy;
+using sc_core::SC_ONE_OR_MORE_BOUND;
+using sc_core::SC_ZERO_OR_MORE_BOUND;
+using sc_core::SC_ALL_BOUND;
+using sc_core::sc_port_base;
+using sc_core::sc_port_b;
+using sc_core::sc_port;
+
+using sc_core::sc_prim_channel;
+
+using sc_core::sc_curr_proc_kind;
+using sc_core::SC_NO_PROC_;
+using sc_core::SC_METHOD_PROC_;
+using sc_core::SC_THREAD_PROC_;
+using sc_core::SC_CTHREAD_PROC_;
+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_handle;
+using sc_core::sc_get_current_process_handle;
+using sc_core::sc_is_unwinding;
+
+using sc_core::sc_sensitive;
+
+using sc_core::sc_spawn_options;
+using sc_core::sc_spawn;
+
+using sc_core::sc_time_unit;
+using sc_core::sc_time;
+using sc_core::SC_ZERO_TIME;
+using sc_core::sc_set_time_resolution;
+using sc_core::sc_get_time_resolution;
+using sc_core::sc_max_time;
+
+#endif  //__SYSTEMC_EXT_CORE__USING_HH__
diff --git a/src/systemc/ext/dt/_dt.hh b/src/systemc/ext/dt/_dt.hh
new file mode 100644
index 0000000..f141e85
--- /dev/null
+++ b/src/systemc/ext/dt/_dt.hh
@@ -0,0 +1,35 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE__DT_HH__
+#define __SYSTEMC_EXT_CORE__DT_HH__
+
+#include "int/_int.hh"
+
+#endif  //__SYSTEMC_EXT_CORE__DT_HH__
diff --git a/src/systemc/ext/dt/_using.hh b/src/systemc/ext/dt/_using.hh
new file mode 100644
index 0000000..b410cc2
--- /dev/null
+++ b/src/systemc/ext/dt/_using.hh
@@ -0,0 +1,35 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE__USING_HH__
+#define __SYSTEMC_EXT_CORE__USING_HH__
+
+#include "int/_using.hh"
+
+#endif  //__SYSTEMC_EXT_CORE__USING_HH__
diff --git a/src/systemc/ext/dt/int/_int.hh b/src/systemc/ext/dt/int/_int.hh
new file mode 100644
index 0000000..11c2b4a
--- /dev/null
+++ b/src/systemc/ext/dt/int/_int.hh
@@ -0,0 +1,35 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE_DT__INT_HH__
+#define __SYSTEMC_EXT_CORE_DT__INT_HH__
+
+#include "sc_nbdefs.hh"
+
+#endif  //__SYSTEMC_EXT_CORE_DT__INT_HH__
diff --git a/src/systemc/ext/dt/int/_using.hh b/src/systemc/ext/dt/int/_using.hh
new file mode 100644
index 0000000..a53ac36
--- /dev/null
+++ b/src/systemc/ext/dt/int/_using.hh
@@ -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
+ */
+
+#ifndef __SYSTEMC_EXT_CORE_INT__USING_HH__
+#define __SYSTEMC_EXT_CORE_INT__USING_HH__
+
+#include "int.hh"
+
+using sc_dt::SC_NOBASE;
+using sc_dt::SC_BIN;
+using sc_dt::SC_OCT;
+using sc_dt::SC_DEC;
+using sc_dt::SC_HEX;
+using sc_dt::SC_BIN_US;
+using sc_dt::SC_BIN_SM;
+using sc_dt::SC_OCT_US;
+using sc_dt::SC_OCT_SM;
+using sc_dt::SC_HEX_US;
+using sc_dt::SC_HEX_SM;
+using sc_dt::SC_CSD;
+using sc_dt::small_type
+using sc_dt::int64;
+using sc_dt::uint64;
+using sc_dt::int_type;
+using sc_dt::uint_type;
+
+#endif  //__SYSTEMC_EXT_CORE_INT__USING_HH__
diff --git a/src/systemc/ext/systemc b/src/systemc/ext/systemc
new file mode 100644
index 0000000..f16a92e
--- /dev/null
+++ b/src/systemc/ext/systemc
@@ -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
+ */
+
+#ifndef __SYSTEMC_EXT_SYSTEMC__
+#define __SYSTEMC_EXT_SYSTEMC__
+
+#include "core/_core.hh"
+#include "dt/_dt.hh"
+
+#endif  //__SYSTEMC_EXT_SYSTEMC__
diff --git a/src/systemc/ext/systemc.h b/src/systemc/ext/systemc.h
new file mode 100644
index 0000000..77230d0
--- /dev/null
+++ b/src/systemc/ext/systemc.h
@@ -0,0 +1,95 @@
+/*
+ * 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
+ */
+
+#ifndef __SYSTEMC_EXT_SYSTEMC_H__
+#define __SYSTEMC_EXT_SYSTEMC_H__
+
+#include "systemc"
+
+// Collect "using" declarations for the various namespaces.
+#include "core/_using.hh"
+#include "dt/_using.hh"
+
+// Include some system header files, and import some symbols from std into
+// the base namespace.
+#include <stdint.h>
+
+#include <cassert>
+#include <climits>
+#include <cmath>
+#include <cstddef>
+#include <cstdio>
+#include <cstring>
+#include <exception>
+#include <fstream>
+#include <iostream>
+#include <memory>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <vector>
+
+using std::ios;
+using std::streambuf;
+using std::streampos;
+using std::streamsize;
+using std::iostream;
+using std::istream;
+using std::ostream;
+using std::cin;
+using std::cout;
+using std::cerr;
+using std::endl;
+using std::flush;
+using std::dec;
+using std::hex;
+using std::oct;
+using std::fstream;
+using std::ifstream;
+using std::ofstream;
+using std::size_t;
+using std::memchr;
+using std::memcmp;
+using std::memcpy;
+using std::memmove;
+using std::memset;
+using std::strcat;
+using std::strchr;
+using std::strcmp;
+using std::strncmp;
+using std::strcpy;
+using std::strncpy;
+using std::strcspn;
+using std::strspn;
+using std::strlen;
+using std::strpbrk;
+using std::strstr;
+using std::strtok;
+
+#endif  //__SYSTEMC_EXT_SYSTEMC_H__
