From: Gabe Black Date: Wed, 9 May 2018 23:59:23 +0000 (-0700) Subject: systemc: Add systemc and systemc.h header files. X-Git-Tag: v19.0.0.0~1979 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=34467a211b43cf52e469f5e3842a3b8c431959c7;p=gem5.git systemc: Add systemc and systemc.h header files. These are the header files as defined by the standard, although some predefined channel types and most of the sc_dt namespace have yet to be stubbed out, and so those portions are excluded. Change-Id: Ic70f887c06e591974a4265c820eb0fdfa740d19a Reviewed-on: https://gem5-review.googlesource.com/10838 Reviewed-by: Jason Lowe-Power Maintainer: Gabe Black --- diff --git a/src/systemc/ext/core/_core.hh b/src/systemc/ext/core/_core.hh new file mode 100644 index 000000000..648328c98 --- /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 000000000..3f8bfecc5 --- /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 000000000..f141e8591 --- /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 000000000..b410cc27b --- /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 000000000..11c2b4aba --- /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 000000000..a53ac36ec --- /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 000000000..f16a92e72 --- /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 000000000..77230d0ab --- /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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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__