systemc: Add an error check whether an interface is alread bound to a port.

Change-Id: I06e3484176c0c06daa28f7be0ed8437b3b15ddb2
Reviewed-on: https://gem5-review.googlesource.com/c/12816
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
Gabe Black
2018-09-15 16:20:27 -07:00
parent 170b9f90c2
commit 509b1b8439
2 changed files with 13 additions and 2 deletions

View File

@@ -33,6 +33,7 @@
#include <list>
#include <vector>
#include "base/cprintf.hh"
#include "systemc/ext/core/sc_interface.hh"
#include "systemc/ext/core/sc_port.hh"
@@ -59,10 +60,19 @@ class Port
void finalizeFinder(StaticSensitivityFinder *finder);
void
addInterface(::sc_core::sc_interface *i)
addInterface(::sc_core::sc_interface *iface)
{
for (int i = 0; i < _size; i++) {
if (getInterface(i) == iface) {
std::string msg =
csprintf("interface already bound to port: port '%s' (%s)",
portBase->name(), portBase->kind());
SC_REPORT_ERROR("(E107) bind interface to port failed",
msg.c_str());
}
}
_size++;
portBase->_gem5AddInterface(i);
portBase->_gem5AddInterface(iface);
}
void