summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/testers/traffic_gen/generators.cc11
-rw-r--r--src/cpu/testers/traffic_gen/generators.hh6
2 files changed, 15 insertions, 2 deletions
diff --git a/src/cpu/testers/traffic_gen/generators.cc b/src/cpu/testers/traffic_gen/generators.cc
index 8a03e21d0..9d0c7e02c 100644
--- a/src/cpu/testers/traffic_gen/generators.cc
+++ b/src/cpu/testers/traffic_gen/generators.cc
@@ -205,13 +205,19 @@ RandomGen::nextPacketTick(bool elastic, Tick delay) const
TraceGen::InputStream::InputStream(const std::string& filename)
: trace(filename)
{
+ init();
+}
+
+void
+TraceGen::InputStream::init()
+{
// Create a protobuf message for the header and read it from the stream
Message::PacketHeader header_msg;
if (!trace.read(header_msg)) {
- panic("Failed to read packet header from %s\n", filename);
+ panic("Failed to read packet header from trace\n");
if (header_msg.tick_freq() != SimClock::Frequency) {
- panic("Trace %s was recorded with a different tick frequency %d\n",
+ panic("Trace was recorded with a different tick frequency %d\n",
header_msg.tick_freq());
}
}
@@ -221,6 +227,7 @@ void
TraceGen::InputStream::reset()
{
trace.reset();
+ init();
}
bool
diff --git a/src/cpu/testers/traffic_gen/generators.hh b/src/cpu/testers/traffic_gen/generators.hh
index dd3706a8f..fe5c5995c 100644
--- a/src/cpu/testers/traffic_gen/generators.hh
+++ b/src/cpu/testers/traffic_gen/generators.hh
@@ -380,6 +380,12 @@ class TraceGen : public BaseGen
void reset();
/**
+ * Check the trace header to make sure that it is of the right
+ * format.
+ */
+ void init();
+
+ /**
* Attempt to read a trace element from the stream,
* and also notify the caller if the end of the file
* was reached.