sc_inout_resolved.hh revision 12853
110461SAndreas.Sandberg@ARM.com/* 210461SAndreas.Sandberg@ARM.com * Copyright 2018 Google, Inc. 310461SAndreas.Sandberg@ARM.com * 410461SAndreas.Sandberg@ARM.com * Redistribution and use in source and binary forms, with or without 510461SAndreas.Sandberg@ARM.com * modification, are permitted provided that the following conditions are 610461SAndreas.Sandberg@ARM.com * met: redistributions of source code must retain the above copyright 710461SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer; 810461SAndreas.Sandberg@ARM.com * redistributions in binary form must reproduce the above copyright 910461SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer in the 1010461SAndreas.Sandberg@ARM.com * documentation and/or other materials provided with the distribution; 1110461SAndreas.Sandberg@ARM.com * neither the name of the copyright holders nor the names of its 1210461SAndreas.Sandberg@ARM.com * contributors may be used to endorse or promote products derived from 1310461SAndreas.Sandberg@ARM.com * this software without specific prior written permission. 1410461SAndreas.Sandberg@ARM.com * 1510461SAndreas.Sandberg@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1610461SAndreas.Sandberg@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1710461SAndreas.Sandberg@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1810461SAndreas.Sandberg@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1910461SAndreas.Sandberg@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2010461SAndreas.Sandberg@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2110461SAndreas.Sandberg@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2210461SAndreas.Sandberg@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2310461SAndreas.Sandberg@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2410461SAndreas.Sandberg@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2510461SAndreas.Sandberg@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2610461SAndreas.Sandberg@ARM.com * 2710461SAndreas.Sandberg@ARM.com * Authors: Gabe Black 2810461SAndreas.Sandberg@ARM.com */ 2910461SAndreas.Sandberg@ARM.com 3010461SAndreas.Sandberg@ARM.com#ifndef __SYSTEMC_EXT_CHANNEL_SC_INOUT_RESOLVED_HH__ 3110461SAndreas.Sandberg@ARM.com#define __SYSTEMC_EXT_CHANNEL_SC_INOUT_RESOLVED_HH__ 3210461SAndreas.Sandberg@ARM.com 3310461SAndreas.Sandberg@ARM.com#include "sc_inout.hh" 3410461SAndreas.Sandberg@ARM.com#include "sc_signal_in_if.hh" 3510461SAndreas.Sandberg@ARM.com#include "sc_signal_inout_if.hh" 3610461SAndreas.Sandberg@ARM.com#include "warn_unimpl.hh" 3710461SAndreas.Sandberg@ARM.com 3810461SAndreas.Sandberg@ARM.comnamespace sc_dt 3910461SAndreas.Sandberg@ARM.com{ 4010461SAndreas.Sandberg@ARM.com 4111988Sandreas.sandberg@arm.comclass sc_logic; 4210461SAndreas.Sandberg@ARM.com 4310461SAndreas.Sandberg@ARM.com} // namespace sc_dt 4410461SAndreas.Sandberg@ARM.com 4510461SAndreas.Sandberg@ARM.comnamespace sc_core 4610461SAndreas.Sandberg@ARM.com{ 4710461SAndreas.Sandberg@ARM.com 4810461SAndreas.Sandberg@ARM.comclass sc_inout_resolved : public sc_inout<sc_dt::sc_logic> 4910461SAndreas.Sandberg@ARM.com{ 5010461SAndreas.Sandberg@ARM.com public: 5111988Sandreas.sandberg@arm.com sc_inout_resolved(); 5211988Sandreas.sandberg@arm.com explicit sc_inout_resolved(const char *name); 5311988Sandreas.sandberg@arm.com virtual ~sc_inout_resolved(); 5410461SAndreas.Sandberg@ARM.com 5510461SAndreas.Sandberg@ARM.com virtual void end_of_elaboration(); 5610461SAndreas.Sandberg@ARM.com 5710461SAndreas.Sandberg@ARM.com sc_inout_resolved &operator = (const sc_dt::sc_logic &); 5810461SAndreas.Sandberg@ARM.com sc_inout_resolved &operator = (const sc_signal_in_if<sc_dt::sc_logic> &); 5910461SAndreas.Sandberg@ARM.com sc_inout_resolved &operator = ( 6010461SAndreas.Sandberg@ARM.com const sc_port<sc_signal_in_if<sc_dt::sc_logic>, 1> &); 6110461SAndreas.Sandberg@ARM.com sc_inout_resolved &operator = ( 6210461SAndreas.Sandberg@ARM.com const sc_port<sc_signal_inout_if<sc_dt::sc_logic>, 1> &); 6310461SAndreas.Sandberg@ARM.com sc_inout_resolved &operator = (const sc_inout_resolved &); 6410461SAndreas.Sandberg@ARM.com 6510461SAndreas.Sandberg@ARM.com virtual const char *kind() const; 6610461SAndreas.Sandberg@ARM.com 6710461SAndreas.Sandberg@ARM.com private: 6810461SAndreas.Sandberg@ARM.com // Disabled 6910461SAndreas.Sandberg@ARM.com sc_inout_resolved(const sc_inout_resolved &) : 7010461SAndreas.Sandberg@ARM.com sc_inout<sc_dt::sc_logic>() {} 7110461SAndreas.Sandberg@ARM.com}; 7210461SAndreas.Sandberg@ARM.com 7310461SAndreas.Sandberg@ARM.com} // namespace sc_core 7410461SAndreas.Sandberg@ARM.com 7510461SAndreas.Sandberg@ARM.com#endif //__SYSTEMC_EXT_CHANNEL_SC_INOUT_RESOLVED_HH__ 7610461SAndreas.Sandberg@ARM.com