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-2006 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.1.1.1  2006/12/15 20:31:37  acg
00040 SystemC 2.2
00041 
00042 Revision 1.2  2006/01/03 23:18:45  acg
00043 Changed copyright to include 2006.
00044 
00045 Revision 1.1.1.1  2005/12/19 23:16:44  acg
00046 First check in of SystemC 2.1 into its own archive.
00047 
00048 Revision 1.10  2005/07/30 03:45:05  acg
00049 Changes from 2.1, including changes for sc_process_handle.
00050 
00051 Revision 1.9  2005/04/04 00:16:08  acg
00052 Changes for directory name change to sys from systemc.
00053 Changes for sc_string going to std::string.
00054 Changes for sc_pvector going to std::vector.
00055 Changes for reference pools for bit and part selections.
00056 Changes for const sc_concatref support.
00057 
00058 Revision 1.6  2004/10/13 18:13:22  acg
00059 sc_ver.h - updated version number. sc_wait.h remove inclusion of
00060 sysc/kernel/sc_event.h because it is not necessary.
00061 
00062 Revision 1.5  2004/09/27 20:49:10  acg
00063 Andy Goodrich, Forte Design Systems, Inc.
00064    - Added a $Log comment so that CVS checkin comments appear in the
00065         checkout source.
00066 
00067 */
00068 
00069 #ifndef SC_WAIT_H
00070 #define SC_WAIT_H
00071 
00072 
00073 #include "sysc/kernel/sc_simcontext.h"
00074 
00075 namespace sc_core {
00076 
00077 class sc_event;
00078 class sc_event_and_list;
00079 class sc_event_or_list;
00080 class sc_simcontext;
00081 
00082 extern sc_simcontext* sc_get_curr_simcontext();
00083 
00084 // static sensitivity for SC_THREADs and SC_CTHREADs
00085 
00086 extern
00087 void
00088 wait( sc_simcontext* = sc_get_curr_simcontext() );
00089 
00090 
00091 // dynamic sensitivity for SC_THREADs and SC_CTHREADs
00092 
00093 extern
00094 void
00095 wait( const sc_event&,
00096       sc_simcontext* = sc_get_curr_simcontext() );
00097 
00098 extern
00099 void
00100 wait( sc_event_or_list&,
00101       sc_simcontext* = sc_get_curr_simcontext() );
00102 
00103 extern
00104 void
00105 wait( sc_event_and_list&,
00106       sc_simcontext* = sc_get_curr_simcontext() );
00107 
00108 extern
00109 void
00110 wait( const sc_time&,
00111       sc_simcontext* = sc_get_curr_simcontext() );
00112 
00113 inline
00114 void
00115 wait( double v, sc_time_unit tu,
00116       sc_simcontext* simc = sc_get_curr_simcontext() )
00117 {
00118     wait( sc_time( v, tu, simc ), simc );
00119 }
00120 
00121 extern
00122 void
00123 wait( const sc_time&,
00124       const sc_event&,
00125       sc_simcontext* = sc_get_curr_simcontext() );
00126 
00127 inline
00128 void
00129 wait( double v, sc_time_unit tu,
00130       const sc_event& e,
00131       sc_simcontext* simc = sc_get_curr_simcontext() )
00132 {
00133     wait( sc_time( v, tu, simc ), e, simc );
00134 }
00135 
00136 extern
00137 void
00138 wait( const sc_time&,
00139       sc_event_or_list&,
00140       sc_simcontext* = sc_get_curr_simcontext() );
00141 
00142 inline
00143 void
00144 wait( double v, sc_time_unit tu,
00145       sc_event_or_list& el,
00146       sc_simcontext* simc = sc_get_curr_simcontext() )
00147 {
00148     wait( sc_time( v, tu, simc ), el, simc );
00149 }
00150 
00151 extern
00152 void
00153 wait( const sc_time&,
00154       sc_event_and_list&,
00155       sc_simcontext* = sc_get_curr_simcontext() );
00156 
00157 inline
00158 void
00159 wait( double v, sc_time_unit tu,
00160       sc_event_and_list& el,
00161       sc_simcontext* simc = sc_get_curr_simcontext() )
00162 {
00163     wait( sc_time( v, tu, simc ), el, simc );
00164 }
00165 
00166 
00167 // static sensitivity for SC_METHODs
00168 
00169 extern
00170 void
00171 next_trigger( sc_simcontext* = sc_get_curr_simcontext() );
00172 
00173 
00174 // dynamic sensitivity for SC_METHODs
00175 
00176 extern
00177 void
00178 next_trigger( const sc_event&,
00179           sc_simcontext* = sc_get_curr_simcontext() );
00180 
00181 extern
00182 void
00183 next_trigger( sc_event_or_list&,
00184           sc_simcontext* = sc_get_curr_simcontext() );
00185 
00186 extern
00187 void
00188 next_trigger( sc_event_and_list&,
00189           sc_simcontext* = sc_get_curr_simcontext() );
00190 
00191 extern
00192 void
00193 next_trigger( const sc_time&,
00194           sc_simcontext* = sc_get_curr_simcontext() );
00195 
00196 inline
00197 void
00198 next_trigger( double v, sc_time_unit tu,
00199           sc_simcontext* simc = sc_get_curr_simcontext() )
00200 {
00201     next_trigger( sc_time( v, tu, simc ), simc );
00202 }
00203 
00204 extern
00205 void
00206 next_trigger( const sc_time&,
00207           const sc_event&,
00208           sc_simcontext* = sc_get_curr_simcontext() );
00209 
00210 inline
00211 void
00212 next_trigger( double v, sc_time_unit tu,
00213           const sc_event& e,
00214           sc_simcontext* simc = sc_get_curr_simcontext() )
00215 {
00216     next_trigger( sc_time( v, tu, simc ), e, simc );
00217 }
00218 
00219 extern
00220 void
00221 next_trigger( const sc_time&,
00222           sc_event_or_list&,
00223           sc_simcontext* = sc_get_curr_simcontext() );
00224 
00225 inline
00226 void
00227 next_trigger( double v, sc_time_unit tu,
00228           sc_event_or_list& el,
00229           sc_simcontext* simc = sc_get_curr_simcontext() )
00230 {
00231     next_trigger( sc_time( v, tu, simc ), el, simc );
00232 }
00233 
00234 extern
00235 void
00236 next_trigger( const sc_time&,
00237           sc_event_and_list&,
00238           sc_simcontext* = sc_get_curr_simcontext() );
00239 
00240 inline
00241 void
00242 next_trigger( double v, sc_time_unit tu,
00243           sc_event_and_list& el,
00244           sc_simcontext* simc = sc_get_curr_simcontext() )
00245 {
00246     next_trigger( sc_time( v, tu, simc ), el, simc );
00247 }
00248 
00249 
00250 // for SC_METHODs and SC_THREADs and SC_CTHREADs
00251 
00252 extern
00253 bool
00254 timed_out( sc_simcontext* = sc_get_curr_simcontext() );
00255 
00256 // misc.
00257 
00258 extern
00259 void
00260 sc_set_location( const char*,
00261          int,
00262          sc_simcontext* = sc_get_curr_simcontext() );
00263 
00264 } // namespace sc_core
00265 
00266 #endif
00267 
00268 // Taf!

Generated on Wed Jan 21 15:32:09 2009 for SystemC by  doxygen 1.5.5