src/sysc/kernel/sc_wait.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002 
00003   The following code is derived, directly or indirectly, from the SystemC
00004   source code Copyright (c) 1996-2005 by all Contributors.
00005   All Rights reserved.
00006 
00007   The contents of this file are subject to the restrictions and limitations
00008   set forth in the SystemC Open Source License Version 2.4 (the "License");
00009   You may not use this file except in compliance with such restrictions and
00010   limitations. You may obtain instructions on how to receive a copy of the
00011   License at http://www.systemc.org/. Software distributed by Contributors
00012   under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
00013   ANY KIND, either express or implied. See the License for the specific
00014   language governing rights and limitations under the License.
00015 
00016  *****************************************************************************/
00017 
00018 /*****************************************************************************
00019 
00020   sc_wait.h -- Wait() and related functions.
00021 
00022   Original Author: Stan Y. Liao, Synopsys, Inc.
00023                    Martin Janssen, Synopsys, Inc.
00024 
00025  *****************************************************************************/
00026 
00027 /******************************************************************************
00028 
00029   MODIFICATION LOG - modifiers, enter your name, affiliation, date and
00030   changes you are making here.
00031 
00032       Name, Affiliation, Date:
00033   Description of Modification:
00034 
00035 ******************************************************************************/
00036 
00037 /* 
00038 $Log: sc_wait.h,v $
00039 Revision 1.6  2004/10/13 18:13:22  acg
00040 sc_ver.h - updated version number. sc_wait.h remove inclusion of
00041 sysc/kernel/sc_event.h because it is not necessary.
00042 
00043 Revision 1.5  2004/09/27 20:49:10  acg
00044 Andy Goodrich, Forte Design Systems, Inc.
00045    - Added a $Log comment so that CVS checkin comments appear in the
00046      checkout source.
00047 
00048 */
00049 
00050 #ifndef SC_WAIT_H
00051 #define SC_WAIT_H
00052 
00053 
00054 #include "sysc/kernel/sc_simcontext.h"
00055 
00056 namespace sc_core {
00057 
00058 class sc_event;
00059 class sc_event_and_list;
00060 class sc_event_or_list;
00061 class sc_simcontext;
00062 
00063 extern sc_simcontext* sc_get_curr_simcontext();
00064 
00065 // static sensitivity for SC_THREADs and SC_CTHREADs
00066 
00067 extern
00068 void
00069 wait( sc_simcontext* = sc_get_curr_simcontext() );
00070 
00071 
00072 // dynamic sensitivity for SC_THREADs and SC_CTHREADs
00073 
00074 extern
00075 void
00076 wait( const sc_event&,
00077       sc_simcontext* = sc_get_curr_simcontext() );
00078 
00079 extern
00080 void
00081 wait( sc_event_or_list&,
00082       sc_simcontext* = sc_get_curr_simcontext() );
00083 
00084 extern
00085 void
00086 wait( sc_event_and_list&,
00087       sc_simcontext* = sc_get_curr_simcontext() );
00088 
00089 extern
00090 void
00091 wait( const sc_time&,
00092       sc_simcontext* = sc_get_curr_simcontext() );
00093 
00094 inline
00095 void
00096 wait( double v, sc_time_unit tu,
00097       sc_simcontext* simc = sc_get_curr_simcontext() )
00098 {
00099     wait( sc_time( v, tu, simc ), simc );
00100 }
00101 
00102 extern
00103 void
00104 wait( const sc_time&,
00105       const sc_event&,
00106       sc_simcontext* = sc_get_curr_simcontext() );
00107 
00108 inline
00109 void
00110 wait( double v, sc_time_unit tu,
00111       const sc_event& e,
00112       sc_simcontext* simc = sc_get_curr_simcontext() )
00113 {
00114     wait( sc_time( v, tu, simc ), e, simc );
00115 }
00116 
00117 extern
00118 void
00119 wait( const sc_time&,
00120       sc_event_or_list&,
00121       sc_simcontext* = sc_get_curr_simcontext() );
00122 
00123 inline
00124 void
00125 wait( double v, sc_time_unit tu,
00126       sc_event_or_list& el,
00127       sc_simcontext* simc = sc_get_curr_simcontext() )
00128 {
00129     wait( sc_time( v, tu, simc ), el, simc );
00130 }
00131 
00132 extern
00133 void
00134 wait( const sc_time&,
00135       sc_event_and_list&,
00136       sc_simcontext* = sc_get_curr_simcontext() );
00137 
00138 inline
00139 void
00140 wait( double v, sc_time_unit tu,
00141       sc_event_and_list& el,
00142       sc_simcontext* simc = sc_get_curr_simcontext() )
00143 {
00144     wait( sc_time( v, tu, simc ), el, simc );
00145 }
00146 
00147 
00148 // static sensitivity for SC_METHODs
00149 
00150 extern
00151 void
00152 next_trigger( sc_simcontext* = sc_get_curr_simcontext() );
00153 
00154 
00155 // dynamic sensitivity for SC_METHODs
00156 
00157 extern
00158 void
00159 next_trigger( const sc_event&,
00160               sc_simcontext* = sc_get_curr_simcontext() );
00161 
00162 extern
00163 void
00164 next_trigger( sc_event_or_list&,
00165               sc_simcontext* = sc_get_curr_simcontext() );
00166 
00167 extern
00168 void
00169 next_trigger( sc_event_and_list&,
00170               sc_simcontext* = sc_get_curr_simcontext() );
00171 
00172 extern
00173 void
00174 next_trigger( const sc_time&,
00175               sc_simcontext* = sc_get_curr_simcontext() );
00176 
00177 inline
00178 void
00179 next_trigger( double v, sc_time_unit tu,
00180               sc_simcontext* simc = sc_get_curr_simcontext() )
00181 {
00182     next_trigger( sc_time( v, tu, simc ), simc );
00183 }
00184 
00185 extern
00186 void
00187 next_trigger( const sc_time&,
00188               const sc_event&,
00189               sc_simcontext* = sc_get_curr_simcontext() );
00190 
00191 inline
00192 void
00193 next_trigger( double v, sc_time_unit tu,
00194               const sc_event& e,
00195               sc_simcontext* simc = sc_get_curr_simcontext() )
00196 {
00197     next_trigger( sc_time( v, tu, simc ), e, simc );
00198 }
00199 
00200 extern
00201 void
00202 next_trigger( const sc_time&,
00203               sc_event_or_list&,
00204               sc_simcontext* = sc_get_curr_simcontext() );
00205 
00206 inline
00207 void
00208 next_trigger( double v, sc_time_unit tu,
00209               sc_event_or_list& el,
00210               sc_simcontext* simc = sc_get_curr_simcontext() )
00211 {
00212     next_trigger( sc_time( v, tu, simc ), el, simc );
00213 }
00214 
00215 extern
00216 void
00217 next_trigger( const sc_time&,
00218               sc_event_and_list&,
00219               sc_simcontext* = sc_get_curr_simcontext() );
00220 
00221 inline
00222 void
00223 next_trigger( double v, sc_time_unit tu,
00224               sc_event_and_list& el,
00225               sc_simcontext* simc = sc_get_curr_simcontext() )
00226 {
00227     next_trigger( sc_time( v, tu, simc ), el, simc );
00228 }
00229 
00230 
00231 // for SC_METHODs and SC_THREADs and SC_CTHREADs
00232 
00233 extern
00234 bool
00235 timed_out( sc_simcontext* = sc_get_curr_simcontext() );
00236 
00237 // misc.
00238 
00239 extern
00240 void
00241 sc_set_location( const char*,
00242                  int,
00243                  sc_simcontext* = sc_get_curr_simcontext() );
00244 
00245 } // namespace sc_core
00246 
00247 #endif
00248 
00249 // Taf!

Generated on Wed Apr 25 13:53:27 2007 for SystemC by  doxygen 1.5.1