summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/bus.cc9
-rw-r--r--src/python/swig/event.i4
-rw-r--r--src/sim/sim_object.hh5
-rw-r--r--src/sim/sim_object_params.hh2
4 files changed, 13 insertions, 7 deletions
diff --git a/src/mem/bus.cc b/src/mem/bus.cc
index 3bf1c6cfc..606402a1e 100644
--- a/src/mem/bus.cc
+++ b/src/mem/bus.cc
@@ -523,9 +523,12 @@ Bus::recvStatusChange(Port::Status status, int id)
for (iter = ranges.begin(); iter != ranges.end(); iter++) {
DPRINTF(BusAddrRanges, "Adding range %#llx - %#llx for id %d\n",
iter->start, iter->end, id);
- if (portMap.insert(*iter, id) == portMap.end())
- panic("Two devices with same range\n");
-
+ if (portMap.insert(*iter, id) == portMap.end()) {
+ int conflict_id = portMap.find(*iter)->second;
+ fatal("%s has two ports with same range:\n\t%s\n\t%s\n",
+ name(), interfaces[id]->getPeer()->name(),
+ interfaces[conflict_id]->getPeer()->name());
+ }
}
}
DPRINTF(MMU, "port list has %d entries\n", portMap.size());
diff --git a/src/python/swig/event.i b/src/python/swig/event.i
index ee1f3d00b..9a2093c99 100644
--- a/src/python/swig/event.i
+++ b/src/python/swig/event.i
@@ -44,8 +44,8 @@
void create(PyObject *object, Tick when);
-class CountedDrainEvent
-{
+class Event;
+class CountedDrainEvent : public Event {
public:
void setCount(int _count);
};
diff --git a/src/sim/sim_object.hh b/src/sim/sim_object.hh
index ec565ce82..00bb3fee6 100644
--- a/src/sim/sim_object.hh
+++ b/src/sim/sim_object.hh
@@ -36,10 +36,11 @@
#ifndef __SIM_OBJECT_HH__
#define __SIM_OBJECT_HH__
-#include <map>
+#include <iostream>
#include <list>
+#include <map>
+#include <string>
#include <vector>
-#include <iostream>
#include "params/SimObject.hh"
#include "sim/serialize.hh"
diff --git a/src/sim/sim_object_params.hh b/src/sim/sim_object_params.hh
index 4179a37bf..5a629a949 100644
--- a/src/sim/sim_object_params.hh
+++ b/src/sim/sim_object_params.hh
@@ -36,6 +36,8 @@
struct PyObject;
#endif
+#include <string>
+
struct SimObjectParams
{
virtual ~SimObjectParams() {}