diff options
author | Gabe Black <gabeblack@google.com> | 2018-07-04 22:41:29 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-05 06:04:19 +0000 |
commit | 7088d69ab5fc70fca4890e0d0169fadd2b19bab8 (patch) | |
tree | c74b56e47f903c7fb8e722393e86a28410ae2c21 /src/systemc/ext | |
parent | 0aec777bf2fff0ac61cd36b7c0358dbe9350c784 (diff) | |
download | gem5-7088d69ab5fc70fca4890e0d0169fadd2b19bab8.tar.xz |
systemc: Implement channel updates and rework the scheduler.
This change implements channel updates, and also reworks the scheduler
to delegate more to the gem5 event queue by taking advantage of
event priorities to ensure things happen in the right order. There's
a lengthy comment in scheduler.hh describes how that all works.
Change-Id: I5dee71b86b2e612bb720a4429f3a72e4b7c6d01f
Reviewed-on: https://gem5-review.googlesource.com/11710
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/ext')
-rw-r--r-- | src/systemc/ext/core/sc_prim.hh | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/systemc/ext/core/sc_prim.hh b/src/systemc/ext/core/sc_prim.hh index 2348f453d..106489280 100644 --- a/src/systemc/ext/core/sc_prim.hh +++ b/src/systemc/ext/core/sc_prim.hh @@ -33,6 +33,13 @@ #include "sc_object.hh" #include "sc_time.hh" +namespace sc_gem5 +{ + +class Channel; + +} // namespace sc_gem5 + namespace sc_core { @@ -43,12 +50,12 @@ class sc_event_or_list; class sc_prim_channel : public sc_object { public: - virtual const char *kind() const; + virtual const char *kind() const { return "sc_prim_channel"; } protected: sc_prim_channel(); explicit sc_prim_channel(const char *); - virtual ~sc_prim_channel() {} + virtual ~sc_prim_channel(); void request_update(); void async_request_update(); @@ -93,6 +100,9 @@ class sc_prim_channel : public sc_object // Disabled sc_prim_channel(const sc_prim_channel &); sc_prim_channel &operator = (const sc_prim_channel &); + + friend class sc_gem5::Channel; + sc_gem5::Channel *_gem5_channel; }; } // namespace sc_core |