sc_sensitive.hh revision 13210:8f6d757c46dc
12SN/A/* 29955SGeoffrey.Blake@arm.com * Copyright 2018 Google, Inc. 39955SGeoffrey.Blake@arm.com * 49955SGeoffrey.Blake@arm.com * Redistribution and use in source and binary forms, with or without 59955SGeoffrey.Blake@arm.com * modification, are permitted provided that the following conditions are 69955SGeoffrey.Blake@arm.com * met: redistributions of source code must retain the above copyright 79955SGeoffrey.Blake@arm.com * notice, this list of conditions and the following disclaimer; 89955SGeoffrey.Blake@arm.com * redistributions in binary form must reproduce the above copyright 99955SGeoffrey.Blake@arm.com * notice, this list of conditions and the following disclaimer in the 109955SGeoffrey.Blake@arm.com * documentation and/or other materials provided with the distribution; 119955SGeoffrey.Blake@arm.com * neither the name of the copyright holders nor the names of its 129955SGeoffrey.Blake@arm.com * contributors may be used to endorse or promote products derived from 139955SGeoffrey.Blake@arm.com * this software without specific prior written permission. 141762SN/A * 157778Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 162SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 172SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 182SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 192SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 202SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 212SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 222SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 232SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 242SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 252SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 262SN/A * 272SN/A * Authors: Gabe Black 282SN/A */ 292SN/A 302SN/A#ifndef __SYSTEMC_EXT_CORE_SC_SENSITIVE_HH__ 312SN/A#define __SYSTEMC_EXT_CORE_SC_SENSITIVE_HH__ 322SN/A 332SN/Anamespace sc_gem5 342SN/A{ 352SN/A 362SN/Aclass Process; 372SN/A 382SN/A} // namespace sc_gem5 392SN/A 402665Ssaidi@eecs.umich.edunamespace sc_dt 412665Ssaidi@eecs.umich.edu{ 422665Ssaidi@eecs.umich.edu 437778Sgblack@eecs.umich.educlass sc_logic; 449955SGeoffrey.Blake@arm.com 452SN/A} // namespace sc_dt 462SN/A 471078SN/Anamespace sc_core 481078SN/A{ 491078SN/A 501114SN/Aclass sc_event; 511078SN/Aclass sc_event_finder; 521114SN/Aclass sc_interface; 531114SN/Aclass sc_module; 541114SN/Aclass sc_port_base; 556216Snate@binkert.org 5611263Sandreas.sandberg@arm.comtemplate <class T> 571078SN/Aclass sc_signal_in_if; 581078SN/A 591078SN/Atemplate <class T> 601078SN/Aclass sc_in; 611078SN/A 621078SN/Atemplate <class T> 631078SN/Aclass sc_inout; 641078SN/A 651078SN/Aclass sc_sensitive 661078SN/A{ 671078SN/A public: 681078SN/A sc_sensitive &operator << (const sc_event &); 691078SN/A sc_sensitive &operator << (const sc_interface &); 701078SN/A sc_sensitive &operator << (const sc_port_base &); 712SN/A sc_sensitive &operator << (sc_event_finder &); 721114SN/A 732SN/A sc_sensitive &operator << (::sc_gem5::Process *p); 741114SN/A 751114SN/A // Nonstandard. 761114SN/A void operator () (::sc_gem5::Process *p, const sc_signal_in_if<bool> &); 771114SN/A void operator () (::sc_gem5::Process *p, 781114SN/A const sc_signal_in_if<sc_dt::sc_logic> &); 791114SN/A void operator () (::sc_gem5::Process *p, const sc_in<bool> &); 801114SN/A void operator () (::sc_gem5::Process *p, const sc_in<sc_dt::sc_logic> &); 811078SN/A void operator () (::sc_gem5::Process *p, const sc_inout<bool> &); 821114SN/A void operator () (::sc_gem5::Process *p, 831114SN/A const sc_inout<sc_dt::sc_logic> &); 841114SN/A void operator () (::sc_gem5::Process *p, sc_event_finder &); 851114SN/A 861114SN/A private: 871114SN/A friend class sc_module; 881114SN/A 891079SN/A // Install all the static events which may not have been ready at 901114SN/A // construction time, like the default_event of the peer of an unbound 911114SN/A // port. 921114SN/A void finalize(); 931114SN/A 941114SN/A sc_sensitive(); 951114SN/A 9610251Satgutier@umich.edu ::sc_gem5::Process *currentProcess; 9710251Satgutier@umich.edu}; 9810251Satgutier@umich.edu 9910251Satgutier@umich.edu} // namespace sc_core 10010251Satgutier@umich.edu 10110251Satgutier@umich.edu#endif //__SYSTEMC_EXT_CORE_SC_SENSITIVE_HH__ 10210251Satgutier@umich.edu