diff options
Diffstat (limited to 'src/systemc/ext/core/sc_process_handle.hh')
-rw-r--r-- | src/systemc/ext/core/sc_process_handle.hh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/systemc/ext/core/sc_process_handle.hh b/src/systemc/ext/core/sc_process_handle.hh index ce3fe03cd..a928ab3ad 100644 --- a/src/systemc/ext/core/sc_process_handle.hh +++ b/src/systemc/ext/core/sc_process_handle.hh @@ -33,6 +33,13 @@ #include <exception> #include <vector> +namespace sc_gem5 +{ + +class Process; + +} // namespace sc_gem5 + namespace sc_core { @@ -67,12 +74,26 @@ class sc_unwind_exception : public std::exception class sc_process_handle { + private: + ::sc_gem5::Process *_gem5_process; + public: sc_process_handle(); sc_process_handle(const sc_process_handle &); explicit sc_process_handle(sc_object *); ~sc_process_handle(); + // These non-standard operators provide access to the data structure which + // actually tracks the process within gem5. By making them operators, we + // can minimize the symbols added to the class namespace. + operator ::sc_gem5::Process * () const { return _gem5_process; } + sc_process_handle & + operator = (::sc_gem5::Process *p) + { + _gem5_process = p; + return *this; + } + bool valid() const; sc_process_handle &operator = (const sc_process_handle &); |