summaryrefslogtreecommitdiff
path: root/src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-01-02 21:16:38 -0800
committerGabe Black <gabeblack@google.com>2019-01-09 01:32:41 +0000
commit77165ae17ffa3c93b333e52e633b6237b1aca996 (patch)
tree2200fa6b5b0dd940eef48ad5669dcb0667cc0e9e /src/systemc/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.cpp
parent275d2779656fd2dd72762b2eb16a738d1b3b2b18 (diff)
downloadgem5-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.cpp111
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