Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/16445
Change subject: systemc: Make sc_(pause|stop) exit to python when not using
sc_main.
......................................................................
systemc: Make sc_(pause|stop) exit to python when not using sc_main.
In those cases, there's no sc_main to return control to. The python
config script is serving more or less the same purpose, so we can
return control to there instead.
Change-Id: I3cf0623ae51d989b883fb8556ebbf44651bbec99
---
M src/systemc/core/scheduler.cc
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc
index da1dd2d..d06ddfb 100644
--- a/src/systemc/core/scheduler.cc
+++ b/src/systemc/core/scheduler.cc
@@ -32,6 +32,7 @@
#include "base/fiber.hh"
#include "base/logging.hh"
#include "sim/eventq.hh"
+#include "sim/sim_exit.hh"
#include "systemc/core/kernel.hh"
#include "systemc/core/sc_main_fiber.hh"
#include "systemc/ext/core/messages.hh"
@@ -352,8 +353,15 @@
status(StatusPaused);
kernel->status(::sc_core::SC_PAUSED);
runOnce = false;
- if (scMainFiber.called() && !scMainFiber.finished())
- scMainFiber.run();
+ if (scMainFiber.called()) {
+ if (!scMainFiber.finished())
+ scMainFiber.run();
+ } else {
+ if (scMainFiber.finished())
+ fatal("Pausing systemc after sc_main completed.");
+ else
+ exitSimLoopNow("systemc pause");
+ }
}
void
@@ -365,8 +373,15 @@
clear();
runOnce = false;
- if (scMainFiber.called() && !scMainFiber.finished())
- scMainFiber.run();
+ if (scMainFiber.called()) {
+ if (!scMainFiber.finished())
+ scMainFiber.run();
+ } else {
+ if (scMainFiber.finished())
+ fatal("Stopping systemc after sc_main completed.");
+ else
+ exitSimLoopNow("systemc stop");
+ }
}
void
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/16445
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I3cf0623ae51d989b883fb8556ebbf44651bbec99
Gerrit-Change-Number: 16445
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev