diff options
author | Gabe Black <gabeblack@google.com> | 2018-08-23 17:55:18 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-26 00:01:23 +0000 |
commit | ccd671c4891e79bbb2359089ffa494e06254b0af (patch) | |
tree | cfacb715bc484460b777458d2c45a42f06fb9d9b /src/systemc/ext | |
parent | abb7d288e9e278a0e7428846909c2d5c790c5e3a (diff) | |
download | gem5-ccd671c4891e79bbb2359089ffa494e06254b0af.tar.xz |
systemc: Implement positional binding.
Change-Id: Ifbcd7e4148b82b9bf5241e040e812925daea3705
Reviewed-on: https://gem5-review.googlesource.com/12263
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_module.hh | 13 | ||||
-rw-r--r-- | src/systemc/ext/core/sc_port.hh | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/systemc/ext/core/sc_module.hh b/src/systemc/ext/core/sc_module.hh index 8de57b575..539d275ec 100644 --- a/src/systemc/ext/core/sc_module.hh +++ b/src/systemc/ext/core/sc_module.hh @@ -78,14 +78,15 @@ class sc_module_name; class sc_bind_proxy { private: - const sc_interface *_interface; - const sc_port_base *_port; - - friend class sc_module; + sc_interface *_interface; + sc_port_base *_port; public: - sc_bind_proxy(const sc_interface &_interface); - sc_bind_proxy(const sc_port_base &_port); + sc_bind_proxy(sc_interface &_interface); + sc_bind_proxy(sc_port_base &_port); + + sc_interface *interface() const { return _interface; } + sc_port_base *port() const { return _port; } }; extern const sc_bind_proxy SC_BIND_PROXY_NIL; diff --git a/src/systemc/ext/core/sc_port.hh b/src/systemc/ext/core/sc_port.hh index f9e50da2e..b39235960 100644 --- a/src/systemc/ext/core/sc_port.hh +++ b/src/systemc/ext/core/sc_port.hh @@ -40,6 +40,7 @@ namespace sc_gem5 { class BindInfo; +class Module; class PendingSensitivityPort; }; @@ -71,6 +72,8 @@ class sc_port_base : public sc_object void bind(sc_interface &); void bind(sc_port_base &); + friend class ::sc_gem5::Module; + // Implementation defined, but depended on by the tests. virtual int vbind(sc_interface &) = 0; virtual int vbind(sc_port_base &) = 0; |