sc_wait.h revision 12027
12568SN/A/*****************************************************************************
22568SN/A
32568SN/A  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
42568SN/A  more contributor license agreements.  See the NOTICE file distributed
52568SN/A  with this work for additional information regarding copyright ownership.
62568SN/A  Accellera licenses this file to you under the Apache License, Version 2.0
72568SN/A  (the "License"); you may not use this file except in compliance with the
82568SN/A  License.  You may obtain a copy of the License at
92568SN/A
102568SN/A    http://www.apache.org/licenses/LICENSE-2.0
112568SN/A
122568SN/A  Unless required by applicable law or agreed to in writing, software
132568SN/A  distributed under the License is distributed on an "AS IS" BASIS,
142568SN/A  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
152568SN/A  implied.  See the License for the specific language governing
162568SN/A  permissions and limitations under the License.
172568SN/A
182568SN/A *****************************************************************************/
192568SN/A
202568SN/A/*****************************************************************************
212568SN/A
222568SN/A  sc_wait.h -- Wait() and related functions.
232568SN/A
242568SN/A  Original Author: Stan Y. Liao, Synopsys, Inc.
252568SN/A                   Martin Janssen, Synopsys, Inc.
262568SN/A
272665Ssaidi@eecs.umich.edu  CHANGE LOG AT THE END OF THE FILE
282665Ssaidi@eecs.umich.edu *****************************************************************************/
292665Ssaidi@eecs.umich.edu
302568SN/A#ifndef SC_WAIT_H
312568SN/A#define SC_WAIT_H
322568SN/A
332568SN/A
342568SN/A#include "sysc/kernel/sc_simcontext.h"
352568SN/A
362568SN/Anamespace sc_core {
373260Ssaidi@eecs.umich.edu
383260Ssaidi@eecs.umich.educlass sc_event;
392590SN/Aclass sc_event_and_list;
402568SN/Aclass sc_event_or_list;
413260Ssaidi@eecs.umich.educlass sc_simcontext;
422568SN/A
432641Sstever@eecs.umich.eduextern sc_simcontext* sc_get_curr_simcontext();
442641Sstever@eecs.umich.edu
453262Srdreslin@umich.edu// static sensitivity for SC_THREADs and SC_CTHREADs
462641Sstever@eecs.umich.edu
472641Sstever@eecs.umich.eduextern
483262Srdreslin@umich.eduvoid
493262Srdreslin@umich.eduwait( sc_simcontext* = sc_get_curr_simcontext() );
503262Srdreslin@umich.edu
513262Srdreslin@umich.edu
523262Srdreslin@umich.edu// dynamic sensitivity for SC_THREADs and SC_CTHREADs
533262Srdreslin@umich.edu
543335Srdreslin@umich.eduextern
553262Srdreslin@umich.eduvoid
563262Srdreslin@umich.eduwait( const sc_event&,
573262Srdreslin@umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
582641Sstever@eecs.umich.edu
592641Sstever@eecs.umich.eduextern
602641Sstever@eecs.umich.eduvoid
612641Sstever@eecs.umich.eduwait( const sc_event_or_list&,
622641Sstever@eecs.umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
632641Sstever@eecs.umich.edu
642641Sstever@eecs.umich.eduextern
652641Sstever@eecs.umich.eduvoid
662641Sstever@eecs.umich.eduwait( const sc_event_and_list&,
672641Sstever@eecs.umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
682641Sstever@eecs.umich.edu
693262Srdreslin@umich.eduextern
703262Srdreslin@umich.eduvoid
713262Srdreslin@umich.eduwait( const sc_time&,
723262Srdreslin@umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
733262Srdreslin@umich.edu
743262Srdreslin@umich.eduinline
753335Srdreslin@umich.eduvoid
763262Srdreslin@umich.eduwait( double v, sc_time_unit tu,
773262Srdreslin@umich.edu      sc_simcontext* simc = sc_get_curr_simcontext() )
783262Srdreslin@umich.edu{
792641Sstever@eecs.umich.edu    wait( sc_time( v, tu, simc ), simc );
802641Sstever@eecs.umich.edu}
812641Sstever@eecs.umich.edu
822592SN/Aextern
832811Srdreslin@umich.eduvoid
842811Srdreslin@umich.eduwait( const sc_time&,
852811Srdreslin@umich.edu      const sc_event&,
862811Srdreslin@umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
872811Srdreslin@umich.edu
882811Srdreslin@umich.eduinline
892811Srdreslin@umich.eduvoid
902811Srdreslin@umich.eduwait( double v, sc_time_unit tu,
912811Srdreslin@umich.edu      const sc_event& e,
923262Srdreslin@umich.edu      sc_simcontext* simc = sc_get_curr_simcontext() )
933262Srdreslin@umich.edu{
943262Srdreslin@umich.edu    wait( sc_time( v, tu, simc ), e, simc );
953262Srdreslin@umich.edu}
963262Srdreslin@umich.edu
973262Srdreslin@umich.eduextern
983335Srdreslin@umich.eduvoid
993262Srdreslin@umich.eduwait( const sc_time&,
1003262Srdreslin@umich.edu      const sc_event_or_list&,
1013262Srdreslin@umich.edu      sc_simcontext* = sc_get_curr_simcontext() );
1022811Srdreslin@umich.edu
1032811Srdreslin@umich.eduinline
1042811Srdreslin@umich.eduvoid
1052811Srdreslin@umich.eduwait( double v, sc_time_unit tu,
1062592SN/A      const sc_event_or_list& el,
1072592SN/A      sc_simcontext* simc = sc_get_curr_simcontext() )
1082592SN/A{
1092641Sstever@eecs.umich.edu    wait( sc_time( v, tu, simc ), el, simc );
1102641Sstever@eecs.umich.edu}
1112592SN/A
1122592SN/Aextern
1132592SN/Avoid
1142592SN/Await( const sc_time&,
1152592SN/A      const sc_event_and_list&,
1162592SN/A      sc_simcontext* = sc_get_curr_simcontext() );
1172592SN/A
1182592SN/Ainline
1192592SN/Avoid
1202592SN/Await( double v, sc_time_unit tu,
1212592SN/A      const sc_event_and_list& el,
1222592SN/A      sc_simcontext* simc = sc_get_curr_simcontext() )
1232641Sstever@eecs.umich.edu{
1242641Sstever@eecs.umich.edu    wait( sc_time( v, tu, simc ), el, simc );
1252592SN/A}
1262592SN/A
1272592SN/A
1282592SN/A// static sensitivity for SC_METHODs
1292592SN/A
1302641Sstever@eecs.umich.eduextern
1312592SN/Avoid
1322592SN/Anext_trigger( sc_simcontext* = sc_get_curr_simcontext() );
1332592SN/A
1342592SN/A
1352641Sstever@eecs.umich.edu// dynamic sensitivity for SC_METHODs
1362641Sstever@eecs.umich.edu
1372641Sstever@eecs.umich.eduextern
1383242Sgblack@eecs.umich.eduvoid
1392641Sstever@eecs.umich.edunext_trigger( const sc_event&,
1403242Sgblack@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1412592SN/A
1423242Sgblack@eecs.umich.eduextern
1432592SN/Avoid
1442592SN/Anext_trigger( const sc_event_or_list&,
1452641Sstever@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1462641Sstever@eecs.umich.edu
1472641Sstever@eecs.umich.eduextern
1483260Ssaidi@eecs.umich.eduvoid
1493260Ssaidi@eecs.umich.edunext_trigger( const sc_event_and_list&,
1503260Ssaidi@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1513260Ssaidi@eecs.umich.edu
1523260Ssaidi@eecs.umich.eduextern
1533260Ssaidi@eecs.umich.eduvoid
1543260Ssaidi@eecs.umich.edunext_trigger( const sc_time&,
1553260Ssaidi@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1563260Ssaidi@eecs.umich.edu
1573260Ssaidi@eecs.umich.eduinline
1583260Ssaidi@eecs.umich.eduvoid
1593260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu,
1603260Ssaidi@eecs.umich.edu	      sc_simcontext* simc = sc_get_curr_simcontext() )
1613260Ssaidi@eecs.umich.edu{
1623260Ssaidi@eecs.umich.edu    next_trigger( sc_time( v, tu, simc ), simc );
1633260Ssaidi@eecs.umich.edu}
1643260Ssaidi@eecs.umich.edu
1653260Ssaidi@eecs.umich.eduextern
1663260Ssaidi@eecs.umich.eduvoid
1673260Ssaidi@eecs.umich.edunext_trigger( const sc_time&,
1683260Ssaidi@eecs.umich.edu	      const sc_event&,
1693260Ssaidi@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1703260Ssaidi@eecs.umich.edu
1713260Ssaidi@eecs.umich.eduinline
1723260Ssaidi@eecs.umich.eduvoid
1733260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu,
1743260Ssaidi@eecs.umich.edu	      const sc_event& e,
1753260Ssaidi@eecs.umich.edu	      sc_simcontext* simc = sc_get_curr_simcontext() )
1763260Ssaidi@eecs.umich.edu{
1773260Ssaidi@eecs.umich.edu    next_trigger( sc_time( v, tu, simc ), e, simc );
1783260Ssaidi@eecs.umich.edu}
1793260Ssaidi@eecs.umich.edu
1803260Ssaidi@eecs.umich.eduextern
1813260Ssaidi@eecs.umich.eduvoid
1823260Ssaidi@eecs.umich.edunext_trigger( const sc_time&,
1833260Ssaidi@eecs.umich.edu	      const sc_event_or_list&,
1843260Ssaidi@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
1853260Ssaidi@eecs.umich.edu
1863260Ssaidi@eecs.umich.eduinline
1873260Ssaidi@eecs.umich.eduvoid
1883260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu,
1893260Ssaidi@eecs.umich.edu	      const sc_event_or_list& el,
1903260Ssaidi@eecs.umich.edu	      sc_simcontext* simc = sc_get_curr_simcontext() )
1913260Ssaidi@eecs.umich.edu{
1923260Ssaidi@eecs.umich.edu    next_trigger( sc_time( v, tu, simc ), el, simc );
1933260Ssaidi@eecs.umich.edu}
1943260Ssaidi@eecs.umich.edu
1953260Ssaidi@eecs.umich.eduextern
1962641Sstever@eecs.umich.eduvoid
1973260Ssaidi@eecs.umich.edunext_trigger( const sc_time&,
1983260Ssaidi@eecs.umich.edu	      const sc_event_and_list&,
1993260Ssaidi@eecs.umich.edu	      sc_simcontext* = sc_get_curr_simcontext() );
2003260Ssaidi@eecs.umich.edu
2013260Ssaidi@eecs.umich.eduinline
2023260Ssaidi@eecs.umich.eduvoid
2033260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu,
2043260Ssaidi@eecs.umich.edu	      const sc_event_and_list& el,
2053260Ssaidi@eecs.umich.edu	      sc_simcontext* simc = sc_get_curr_simcontext() )
2063260Ssaidi@eecs.umich.edu{
2073260Ssaidi@eecs.umich.edu    next_trigger( sc_time( v, tu, simc ), el, simc );
2083260Ssaidi@eecs.umich.edu}
2093260Ssaidi@eecs.umich.edu
2103260Ssaidi@eecs.umich.edu
2113260Ssaidi@eecs.umich.edu// for SC_METHODs and SC_THREADs and SC_CTHREADs
2123260Ssaidi@eecs.umich.edu
2133260Ssaidi@eecs.umich.eduextern
2143260Ssaidi@eecs.umich.edubool
2153260Ssaidi@eecs.umich.edutimed_out( sc_simcontext* = sc_get_curr_simcontext() );
2163260Ssaidi@eecs.umich.edu
2173260Ssaidi@eecs.umich.edu// misc.
2183260Ssaidi@eecs.umich.edu
2193260Ssaidi@eecs.umich.eduextern
2203260Ssaidi@eecs.umich.eduvoid
2213260Ssaidi@eecs.umich.edusc_set_location( const char*,
2223260Ssaidi@eecs.umich.edu		 int,
2233260Ssaidi@eecs.umich.edu		 sc_simcontext* = sc_get_curr_simcontext() );
2243260Ssaidi@eecs.umich.edu
2253260Ssaidi@eecs.umich.edu} // namespace sc_core
2263260Ssaidi@eecs.umich.edu
2273260Ssaidi@eecs.umich.edu/*
2283260Ssaidi@eecs.umich.edu$Log: sc_wait.h,v $
2293260Ssaidi@eecs.umich.eduRevision 1.6  2011/08/26 20:46:11  acg
2303260Ssaidi@eecs.umich.edu Andy Goodrich: moved the modification log to the end of the file to
2313260Ssaidi@eecs.umich.edu eliminate source line number skew when check-ins are done.
2323260Ssaidi@eecs.umich.edu
2333260Ssaidi@eecs.umich.eduRevision 1.5  2011/02/18 20:27:14  acg
2343260Ssaidi@eecs.umich.edu Andy Goodrich: Updated Copyrights.
2353260Ssaidi@eecs.umich.edu
2363260Ssaidi@eecs.umich.eduRevision 1.4  2011/02/13 21:47:38  acg
2373260Ssaidi@eecs.umich.edu Andy Goodrich: update copyright notice.
238
239Revision 1.3  2011/01/18 20:10:45  acg
240 Andy Goodrich: changes for IEEE1666_2011 semantics.
241
242Revision 1.2  2008/05/22 17:06:27  acg
243 Andy Goodrich: updated copyright notice to include 2008.
244
245Revision 1.1.1.1  2006/12/15 20:20:05  acg
246SystemC 2.3
247
248Revision 1.2  2006/01/03 23:18:45  acg
249Changed copyright to include 2006.
250
251Revision 1.1.1.1  2005/12/19 23:16:44  acg
252First check in of SystemC 2.1 into its own archive.
253
254Revision 1.10  2005/07/30 03:45:05  acg
255Changes from 2.1, including changes for sc_process_handle.
256
257Revision 1.9  2005/04/04 00:16:08  acg
258Changes for directory name change to sys from systemc.
259Changes for sc_string going to std::string.
260Changes for sc_pvector going to std::vector.
261Changes for reference pools for bit and part selections.
262Changes for const sc_concatref support.
263
264Revision 1.6  2004/10/13 18:13:22  acg
265sc_ver.h - updated version number. sc_wait.h remove inclusion of
266sysc/kernel/sc_event.h because it is not necessary.
267
268Revision 1.5  2004/09/27 20:49:10  acg
269Andy Goodrich, Forte Design Systems, Inc.
270   - Added a $Log comment so that CVS checkin comments appear in the
271        checkout source.
272
273*/
274
275#endif
276
277// Taf!
278