diff options
author | Andrew Waterman <waterman@eecs.berkeley.edu> | 2013-10-28 20:37:39 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@eecs.berkeley.edu> | 2013-10-28 20:38:57 -0700 |
commit | d5204838b7a09225047ba3eaf707f1db9207cbe3 (patch) | |
tree | 52cb2662758ef678155c4430e9cd412305859f25 | |
parent | 1bcda9195b55d23fe373b23ae38884fd7a4ecef8 (diff) | |
download | spike-d5204838b7a09225047ba3eaf707f1db9207cbe3.zip spike-d5204838b7a09225047ba3eaf707f1db9207cbe3.tar.gz spike-d5204838b7a09225047ba3eaf707f1db9207cbe3.tar.bz2 |
Pass target machine's return code back to OS
-rw-r--r-- | riscv/sim.cc | 3 | ||||
-rw-r--r-- | riscv/sim.h | 2 | ||||
-rw-r--r-- | riscv/spike.cc | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/riscv/sim.cc b/riscv/sim.cc index 4d61555..c800e87 100644 --- a/riscv/sim.cc +++ b/riscv/sim.cc @@ -72,7 +72,7 @@ reg_t sim_t::get_scr(int which) } } -void sim_t::run() +int sim_t::run() { while (htif->tick()) { @@ -81,6 +81,7 @@ void sim_t::run() else step(INTERLEAVE); } + return htif->exit_code(); } void sim_t::step(size_t n) diff --git a/riscv/sim.h b/riscv/sim.h index e827087..34ed6e8 100644 --- a/riscv/sim.h +++ b/riscv/sim.h @@ -19,7 +19,7 @@ public: ~sim_t(); // run the simulation to completion - void run(); + int run(); bool running(); void stop(); void set_debug(bool value); diff --git a/riscv/spike.cc b/riscv/spike.cc index fb2b7da..da564b5 100644 --- a/riscv/spike.cc +++ b/riscv/spike.cc @@ -68,5 +68,5 @@ int main(int argc, char** argv) } s.set_debug(debug); - s.run(); + return s.run(); } |