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:
@@ -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
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
Reference in New Issue
Block a user