33a34
> #include <sstream>
42d42
< #include "warn_unimpl.hh" // for warn_unimpl
56c56,57
< m_cur_val(T()), m_new_val(T()), _changeStamp(~0ULL)
---
> m_cur_val(T()), m_new_val(T()), _changeStamp(~0ULL),
> _gem5Writer(NULL)
60c61,62
< m_cur_val(T()), m_new_val(T()), _changeStamp(~0ULL)
---
> m_cur_val(T()), m_new_val(T()), _changeStamp(~0ULL),
> _gem5Writer(NULL)
64c66,67
< m_cur_val(initial_value), m_new_val(initial_value), _changeStamp(~0ULL)
---
> m_cur_val(initial_value), m_new_val(initial_value),
> _changeStamp(~0ULL), _gem5Writer(NULL)
69c72
< register_port(sc_port_base &, const char *)
---
> register_port(sc_port_base &port, const char *iface_type_name)
71c74,90
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> if (WRITER_POLICY == SC_ONE_WRITER &&
> std::string(iface_type_name) ==
> typeid(sc_signal_inout_if<T>).name()) {
> if (_gem5Writer) {
> std::ostringstream ss;
> ss << "\n signal " << "`" << name() << "' (" <<
> kind() << ")";
> ss << "\n first driver `" << _gem5Writer->name() << "' (" <<
> _gem5Writer->kind() << ")";
> ss << "\n second driver `" << port.name() << "' (" <<
> port.kind() << ")";
> SC_REPORT_ERROR(
> "(E115) sc_signal<T> cannot have more than one driver",
> ss.str().c_str());
> }
> _gem5Writer = &port;
> }
158a178
> sc_port_base *_gem5Writer;
182c202,203
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
187c208,209
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
192c214,215
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
197c220
< register_port(sc_port_base &, const char *)
---
> register_port(sc_port_base &port, const char *iface_type_name)
199c222,238
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> if (WRITER_POLICY == SC_ONE_WRITER &&
> std::string(iface_type_name) ==
> typeid(sc_signal_inout_if<bool>).name()) {
> if (_gem5Writer) {
> std::ostringstream ss;
> ss << "\n signal " << "`" << name() << "' (" <<
> kind() << ")";
> ss << "\n first driver `" << _gem5Writer->name() << "' (" <<
> _gem5Writer->kind() << ")";
> ss << "\n second driver `" << port.name() << "' (" <<
> port.kind() << ")";
> SC_REPORT_ERROR(
> "(E115) sc_signal<T> cannot have more than one driver",
> ss.str().c_str());
> }
> _gem5Writer = &port;
> }
316a356,357
> sc_port_base *_gem5Writer;
>
331c372,373
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
336c378,379
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
342c385,386
< _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL)
---
> _changeStamp(~0ULL), _posStamp(~0ULL), _negStamp(~0ULL),
> _gem5Writer(NULL)
347c391
< register_port(sc_port_base &, const char *)
---
> register_port(sc_port_base &port, const char *iface_type_name)
349c393,409
< sc_channel_warn_unimpl(__PRETTY_FUNCTION__);
---
> if (WRITER_POLICY == SC_ONE_WRITER &&
> std::string(iface_type_name) ==
> typeid(sc_signal_inout_if<sc_dt::sc_logic>).name()) {
> if (_gem5Writer) {
> std::ostringstream ss;
> ss << "\n signal " << "`" << name() << "' (" <<
> kind() << ")";
> ss << "\n first driver `" << _gem5Writer->name() << "' (" <<
> _gem5Writer->kind() << ")";
> ss << "\n second driver `" << port.name() << "' (" <<
> port.kind() << ")";
> SC_REPORT_ERROR(
> "(E115) sc_signal<T> cannot have more than one driver",
> ss.str().c_str());
> }
> _gem5Writer = &port;
> }
466a527,528
> sc_port_base *_gem5Writer;
>