sc_fifo_in.hh revision 12868:23162a436538
14826Ssaidi@eecs.umich.edu/* 24826Ssaidi@eecs.umich.edu * Copyright 2018 Google, Inc. 34826Ssaidi@eecs.umich.edu * 44826Ssaidi@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 54826Ssaidi@eecs.umich.edu * modification, are permitted provided that the following conditions are 64826Ssaidi@eecs.umich.edu * met: redistributions of source code must retain the above copyright 74826Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 84826Ssaidi@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 94826Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 104826Ssaidi@eecs.umich.edu * documentation and/or other materials provided with the distribution; 114826Ssaidi@eecs.umich.edu * neither the name of the copyright holders nor the names of its 124826Ssaidi@eecs.umich.edu * contributors may be used to endorse or promote products derived from 134826Ssaidi@eecs.umich.edu * this software without specific prior written permission. 144826Ssaidi@eecs.umich.edu * 154826Ssaidi@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 164826Ssaidi@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 174826Ssaidi@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 184826Ssaidi@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 194826Ssaidi@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 204826Ssaidi@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 214826Ssaidi@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 224826Ssaidi@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 234826Ssaidi@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 244826Ssaidi@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 254826Ssaidi@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 264826Ssaidi@eecs.umich.edu * 274826Ssaidi@eecs.umich.edu * Authors: Gabe Black 284826Ssaidi@eecs.umich.edu */ 294826Ssaidi@eecs.umich.edu 304826Ssaidi@eecs.umich.edu#ifndef __SYSTEMC_EXT_CHANNEL_SC_FIFO_IN_HH__ 314826Ssaidi@eecs.umich.edu#define __SYSTEMC_EXT_CHANNEL_SC_FIFO_IN_HH__ 3211793Sbrandon.potter@amd.com 3311793Sbrandon.potter@amd.com#include "../core/sc_port.hh" 347678Sgblack@eecs.umich.edu#include "sc_fifo_in_if.hh" 354826Ssaidi@eecs.umich.edu#include "warn_unimpl.hh" 368706Sandreas.hansson@arm.com 374826Ssaidi@eecs.umich.edunamespace sc_core 384826Ssaidi@eecs.umich.edu{ 394826Ssaidi@eecs.umich.edu 404826Ssaidi@eecs.umich.educlass sc_event; 417741Sgblack@eecs.umich.educlass sc_event_finder; 427741Sgblack@eecs.umich.edu 437741Sgblack@eecs.umich.edutemplate <class T> 447741Sgblack@eecs.umich.educlass sc_fifo_in : public sc_port<sc_fifo_in_if<T>, 0> 457741Sgblack@eecs.umich.edu{ 467741Sgblack@eecs.umich.edu public: 477707Sgblack@eecs.umich.edu sc_fifo_in() : sc_port<sc_fifo_in_if<T>, 0>() {} 487707Sgblack@eecs.umich.edu explicit sc_fifo_in(const char *name) : sc_port<sc_fifo_in_if<T>, 0>(name) 497707Sgblack@eecs.umich.edu {} 508806Sgblack@eecs.umich.edu virtual ~sc_fifo_in() {} 518767Sgblack@eecs.umich.edu 528767Sgblack@eecs.umich.edu // Deprecated binding constructors. 534826Ssaidi@eecs.umich.edu explicit sc_fifo_in(const sc_fifo_in_if<T> &interface) : 548806Sgblack@eecs.umich.edu sc_port<sc_fifo_in_if<T>, 0>(interface) 558806Sgblack@eecs.umich.edu {} 568806Sgblack@eecs.umich.edu sc_fifo_in(const char *name, const sc_fifo_in_if<T> &interface) : 578806Sgblack@eecs.umich.edu sc_port<sc_fifo_in_if<T>, 0>(name, interface) 588806Sgblack@eecs.umich.edu {} 598806Sgblack@eecs.umich.edu explicit sc_fifo_in(sc_port_b<sc_fifo_in_if<T> > &parent) : 6014020Sgabeblack@google.com sc_port<sc_fifo_in_if<T>, 0>(parent) 618852Sandreas.hansson@arm.com {} 628806Sgblack@eecs.umich.edu sc_fifo_in(const char *name, sc_port_b<sc_fifo_in_if<T> > &parent) : 638806Sgblack@eecs.umich.edu sc_port<sc_fifo_in_if<T>, 0>(name, parent) 648806Sgblack@eecs.umich.edu {} 654826Ssaidi@eecs.umich.edu explicit sc_fifo_in(sc_port<sc_fifo_in_if<T>, 0> &parent) : 666329Sgblack@eecs.umich.edu sc_port<sc_fifo_in_if<T>, 0>(parent) 676329Sgblack@eecs.umich.edu {} 686329Sgblack@eecs.umich.edu sc_fifo_in(const char *name, sc_port<sc_fifo_in_if<T>, 0> &parent) : 696329Sgblack@eecs.umich.edu sc_port<sc_fifo_in_if<T>, 0>(name, parent) 706329Sgblack@eecs.umich.edu {} 716329Sgblack@eecs.umich.edu 726329Sgblack@eecs.umich.edu void 736329Sgblack@eecs.umich.edu read(T &) 747741Sgblack@eecs.umich.edu { 756329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 766329Sgblack@eecs.umich.edu } 776329Sgblack@eecs.umich.edu T 787741Sgblack@eecs.umich.edu read() 797741Sgblack@eecs.umich.edu { 807741Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 817741Sgblack@eecs.umich.edu return *(T *)nullptr; 827741Sgblack@eecs.umich.edu } 837741Sgblack@eecs.umich.edu bool 847741Sgblack@eecs.umich.edu nb_read(T &) 857741Sgblack@eecs.umich.edu { 866329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 876329Sgblack@eecs.umich.edu return false; 886329Sgblack@eecs.umich.edu } 896329Sgblack@eecs.umich.edu const sc_event & 906329Sgblack@eecs.umich.edu data_written_event() const 916329Sgblack@eecs.umich.edu { 926329Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 936329Sgblack@eecs.umich.edu return *(const sc_event *)nullptr; 947741Sgblack@eecs.umich.edu } 957741Sgblack@eecs.umich.edu sc_event_finder & 967741Sgblack@eecs.umich.edu data_written() const 977741Sgblack@eecs.umich.edu { 989375Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 997741Sgblack@eecs.umich.edu return *(sc_event_finder *)nullptr; 1007741Sgblack@eecs.umich.edu } 1017741Sgblack@eecs.umich.edu int 1027741Sgblack@eecs.umich.edu num_available() const 1037741Sgblack@eecs.umich.edu { 1047741Sgblack@eecs.umich.edu sc_channel_warn_unimpl(__PRETTY_FUNCTION__); 1057741Sgblack@eecs.umich.edu return 0; 1067741Sgblack@eecs.umich.edu } 1077741Sgblack@eecs.umich.edu virtual const char *kind() const { return "sc_fifo_in"; } 1087741Sgblack@eecs.umich.edu 1097741Sgblack@eecs.umich.edu private: 1107741Sgblack@eecs.umich.edu // Disabled 1117741Sgblack@eecs.umich.edu sc_fifo_in(const sc_fifo_in<T> &) : sc_port<sc_fifo_in_if<T>, 0>() {} 1126329Sgblack@eecs.umich.edu sc_fifo_in<T> &operator = (const sc_fifo_in<T> &) { return *this; } 1136329Sgblack@eecs.umich.edu}; 1147741Sgblack@eecs.umich.edu 1157741Sgblack@eecs.umich.edu} // namespace sc_core 1167741Sgblack@eecs.umich.edu 1177741Sgblack@eecs.umich.edu#endif //__SYSTEMC_EXT_CHANNEL_SC_FIFO_IN_HH__ 1187741Sgblack@eecs.umich.edu