From 7624fc1fb461f1dd127763521d85f63e81617d71 Mon Sep 17 00:00:00 2001
From: Dylan Johnson <Dylan.Johnson@ARM.com>
Date: Fri, 9 Oct 2015 14:27:09 -0500
Subject: sim: Add relative break scheduling

Add schedRelBreak() function, executable within a debugger, that sets a
breakpoint by relative rather than absolute tick.
---
 src/sim/debug.cc | 6 ++++++
 src/sim/debug.hh | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/src/sim/debug.cc b/src/sim/debug.cc
index b3d73eff7..9fab75108 100644
--- a/src/sim/debug.cc
+++ b/src/sim/debug.cc
@@ -89,6 +89,12 @@ schedBreak(Tick when)
     warn("need to stop all queues");
 }
 
+void
+schedRelBreak(Tick delta)
+{
+    schedBreak(curTick() + delta);
+}
+
 void
 breakAtKernelFunction(const char* funcName)
 {
diff --git a/src/sim/debug.hh b/src/sim/debug.hh
index 0d324698d..8587325e1 100644
--- a/src/sim/debug.hh
+++ b/src/sim/debug.hh
@@ -44,6 +44,13 @@
  */
 void schedBreak(Tick when);
 
+/**
+ * Cause the simulator to execute a breakpoint
+ * relative to the current tick.
+ * @param delta the number of ticks to execute until breaking
+ */
+void schedRelBreak(Tick delta);
+
 /**
  * Cause the simulator to execute a breakpoint when
  * the given kernel function is reached
-- 
cgit v1.2.3