summaryrefslogtreecommitdiff
path: root/src/systemc/ext/channel/sc_buffer.hh
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-10-01 22:02:21 -0700
committerGabe Black <gabeblack@google.com>2018-10-16 00:46:10 +0000
commit167e6c06b5d61d54e3eab48d03eb50ec316aeec3 (patch)
tree55c43062a20d7d7fd5a1dff206c856c6521617cf /src/systemc/ext/channel/sc_buffer.hh
parentc736ef1b2f6447be1dcd9c9e62cc072befa91443 (diff)
downloadgem5-167e6c06b5d61d54e3eab48d03eb50ec316aeec3.tar.xz
systemc: Implement writer policies.
This includes the nonstandard SC_NO_WRITE_CHECK #define which the Accellera tests use and depend on. Change-Id: I106c4c16160325725a00d5c337047251817dca32 Reviewed-on: https://gem5-review.googlesource.com/c/13203 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/ext/channel/sc_buffer.hh')
-rw-r--r--src/systemc/ext/channel/sc_buffer.hh5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/systemc/ext/channel/sc_buffer.hh b/src/systemc/ext/channel/sc_buffer.hh
index 21dc52be0..c0ad710dd 100644
--- a/src/systemc/ext/channel/sc_buffer.hh
+++ b/src/systemc/ext/channel/sc_buffer.hh
@@ -50,6 +50,11 @@ class sc_buffer : public sc_signal<T, WRITER_POLICY>
virtual void
write(const T &t)
{
+# if !defined(SC_NO_WRITE_CHECK)
+ {
+ this->_checker.checkWriter();
+ }
+# endif
this->m_new_val = t;
this->request_update();
}