diff options
author | Gabe Black <gabeblack@google.com> | 2019-01-02 21:16:38 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-01-09 01:32:41 +0000 |
commit | 77165ae17ffa3c93b333e52e633b6237b1aca996 (patch) | |
tree | 2200fa6b5b0dd940eef48ad5669dcb0667cc0e9e /src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp | |
parent | 275d2779656fd2dd72762b2eb16a738d1b3b2b18 (diff) | |
download | gem5-77165ae17ffa3c93b333e52e633b6237b1aca996.tar.xz |
systemc: Rename tlm .cpp files to .cc and add SConscripts.
Change-Id: Ia30192b441dd34bc7165c6335386c88c0015fdf6
Reviewed-on: https://gem5-review.googlesource.com/c/15295
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Diffstat (limited to 'src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp')
-rw-r--r-- | src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp b/src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp deleted file mode 100644 index 2c8b1e1a0..000000000 --- a/src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/***************************************************************************** - - Licensed to Accellera Systems Initiative Inc. (Accellera) under one or - more contributor license agreements. See the NOTICE file distributed - with this work for additional information regarding copyright ownership. - Accellera licenses this file to you under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with the - License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. See the License for the specific language governing - permissions and limitations under the License. - - *****************************************************************************/ - -#include <cstring> -#include <map> -#include <systemc> -#include <tlm> - -using sc_core::sc_string_view; -using sc_core::sc_type_index; - -namespace tlm -{ - -namespace -{ - -struct tlm_phase_registry -{ - typedef unsigned int key_type; - - static tlm_phase_registry & - instance() - { - static tlm_phase_registry inst; - return inst; - } - - unsigned int - register_phase(sc_type_index type, sc_string_view name) - { - type_map::const_iterator it = ids_.find(type); - - if (name.empty()) { - SC_REPORT_FATAL( sc_core::SC_ID_INTERNAL_ERROR_, - "unexpected empty tlm_phase name" ); - return UNINITIALIZED_PHASE; - } - - if (it == ids_.end()) { - // new phase - generate/store ID and name - type_map::value_type v(type, static_cast<key_type>(names_.size())); - names_.push_back(name_table::value_type(name.data(), name.size())); - ids_.insert(v); - return v.second; - } - - if (names_[it->second] != name) { - SC_REPORT_FATAL(sc_core::SC_ID_INTERNAL_ERROR_, - "tlm_phase registration failed: duplicate type info" ); - sc_core::sc_abort(); - } - return it->second; - } - - const char * - get_name(key_type id) const - { - sc_assert(id < names_.size()); - return names_[id].c_str(); - } - - private: - typedef std::map<sc_type_index, key_type> type_map; - typedef std::vector<std::string> name_table; - - type_map ids_; - name_table names_; - - tlm_phase_registry() : names_(END_RESP + 1) - { - names_[UNINITIALIZED_PHASE] = "UNINITIALIZED_PHASE"; - names_[BEGIN_REQ] = "BEGIN_REQ"; - names_[END_REQ] = "END_REQ"; - names_[BEGIN_RESP] = "BEGIN_RESP"; - names_[END_RESP] = "END_RESP"; - } -}; - -} // anonymous namespace - -tlm_phase::tlm_phase(unsigned int id) : m_id(id) -{} - -tlm_phase::tlm_phase(const std::type_info &type, const char *name) : - m_id(tlm_phase_registry::instance().register_phase(type, name)) -{} - -const char * -tlm_phase::get_name() const -{ - return tlm_phase_registry::instance().get_name(m_id); -} - -} // namespace tlm |