systemc: Implement sc_get_current_process_handle's other personality.
When run during simulation, sc_get_current_process_handle returns a handle for the currently running process or a invalid handle if no process is running (ie sc_main is running). When run during elaboration, it returns a handle to the most recently created process. This second context is what this change handles. Change-Id: I3fb247b9b7bf83891c782966cfef474753159158 Reviewed-on: https://gem5-review.googlesource.com/12030 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
#include "base/logging.hh"
|
||||
#include "systemc/core/process.hh"
|
||||
#include "systemc/core/scheduler.hh"
|
||||
#include "systemc/ext/core/sc_main.hh"
|
||||
#include "systemc/ext/core/sc_process_handle.hh"
|
||||
|
||||
namespace sc_core
|
||||
@@ -292,7 +293,10 @@ sc_process_handle::sync_reset_off(
|
||||
sc_process_handle
|
||||
sc_get_current_process_handle()
|
||||
{
|
||||
return sc_process_handle(::sc_gem5::scheduler.current());
|
||||
if (sc_is_running())
|
||||
return sc_process_handle(::sc_gem5::scheduler.current());
|
||||
else
|
||||
return sc_process_handle(::sc_gem5::Process::newest());
|
||||
}
|
||||
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user