00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017  
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 #ifndef SC_WAIT_H
00029 #define SC_WAIT_H
00030 
00031 
00032 #include "sysc/kernel/sc_simcontext.h"
00033 
00034 #ifndef _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR
00035 #define _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR "SYSC_PRINT_VERBOSE_MESSAGE"
00036 #endif
00037 namespace sc_core {
00038 
00039 class sc_event;
00040 class sc_event_and_list;
00041 class sc_event_or_list;
00042 class sc_simcontext;
00043 
00044 extern sc_simcontext* sc_get_curr_simcontext();
00045 
00046 void message_test();
00047 
00048 
00054 extern 
00055 void 
00056 aux_seg_bound(sc_simcontext* simc);
00057  
00058 
00059 extern
00060 void
00061 wait( int,
00062       sc_simcontext* = sc_get_curr_simcontext() );
00063 
00064 
00065 
00066 
00071 
00072 extern
00073 void
00074 wait( const sc_event&,
00075       int,
00076       sc_simcontext* = sc_get_curr_simcontext() );
00077 
00082 
00083 extern
00084 void
00085 wait( const sc_event_or_list&,
00086       int,
00087       sc_simcontext* = sc_get_curr_simcontext() );
00088 
00093 
00094 extern
00095 void
00096 wait( const sc_event_and_list&,
00097       int,
00098       sc_simcontext* = sc_get_curr_simcontext() );
00099 
00104 
00105 extern
00106 void
00107 wait( const sc_time&,
00108       int,
00109       sc_simcontext* = sc_get_curr_simcontext() );
00110 
00115 
00116 inline
00117 void
00118 wait( double v, sc_time_unit tu,
00119       int seg_id,
00120       sc_simcontext* simc = sc_get_curr_simcontext() )
00121 {
00122     wait( sc_time( v, tu, simc ), seg_id, simc );
00123 }
00124 
00129 
00130 extern
00131 void
00132 wait( const sc_time&,
00133       const sc_event&,
00134       int,
00135       sc_simcontext* = sc_get_curr_simcontext() );
00136 
00141 
00142 inline
00143 void
00144 wait( double v, sc_time_unit tu,
00145       const sc_event& e,
00146       int seg_id,
00147       sc_simcontext* simc = sc_get_curr_simcontext() )
00148 {
00149     wait( sc_time( v, tu, simc ), e, seg_id, simc );
00150 }
00151 
00156 
00157 extern
00158 void
00159 wait( const sc_time&,
00160       const sc_event_or_list&,
00161       int,
00162       sc_simcontext* = sc_get_curr_simcontext() );
00163 
00168 
00169 inline
00170 void
00171 wait( double v, sc_time_unit tu,
00172       const sc_event_or_list& el,
00173       int seg_id,
00174       sc_simcontext* simc = sc_get_curr_simcontext() )
00175 {
00176     wait( sc_time( v, tu, simc ), el, seg_id, simc );
00177 }
00178 
00183 
00184 extern
00185 void
00186 wait( const sc_time&,
00187       const sc_event_and_list&,
00188       int,
00189       sc_simcontext* = sc_get_curr_simcontext() );
00190 
00195 
00196 inline
00197 void
00198 wait( double v, sc_time_unit tu,
00199       const sc_event_and_list& el,
00200       int seg_id,
00201       sc_simcontext* simc = sc_get_curr_simcontext() )
00202 {
00203     wait( sc_time( v, tu, simc ), el, seg_id, simc );
00204 }
00205 
00206 
00207 
00208 
00213 
00214 extern
00215 void
00216 next_trigger( int,
00217               sc_simcontext* = sc_get_curr_simcontext() );
00218 
00219 
00220 
00221 
00226 
00227 extern
00228 void
00229 next_trigger( const sc_event&,
00230               int,
00231               sc_simcontext* = sc_get_curr_simcontext() );
00232 
00237 
00238 extern
00239 void
00240 next_trigger( const sc_event_or_list&,
00241               int,
00242               sc_simcontext* = sc_get_curr_simcontext() );
00243 
00248 
00249 extern
00250 void
00251 next_trigger( const sc_event_and_list&,
00252               int,
00253               sc_simcontext* = sc_get_curr_simcontext() );
00254 
00259 
00260 extern
00261 void
00262 next_trigger( const sc_time&,
00263               int,
00264               sc_simcontext* = sc_get_curr_simcontext() );
00265 
00270 
00271 inline
00272 void
00273 next_trigger( double v, sc_time_unit tu,
00274               int seg_id,
00275               sc_simcontext* simc = sc_get_curr_simcontext() )
00276 {
00277     next_trigger( sc_time( v, tu, simc ), seg_id, simc );
00278 }
00279 
00284 
00285 extern
00286 void
00287 next_trigger( const sc_time&,
00288               const sc_event&,
00289               int,
00290               sc_simcontext* = sc_get_curr_simcontext() );
00291 
00296 
00297 inline
00298 void
00299 next_trigger( double v, sc_time_unit tu,
00300               const sc_event& e,
00301               int seg_id,
00302               sc_simcontext* simc = sc_get_curr_simcontext() )
00303 {
00304     next_trigger( sc_time( v, tu, simc ), e, seg_id, simc );
00305 }
00306 
00311 
00312 extern
00313 void
00314 next_trigger( const sc_time&,
00315               const sc_event_or_list&,
00316               int,
00317               sc_simcontext* = sc_get_curr_simcontext() );
00318 
00323 
00324 inline
00325 void
00326 next_trigger( double v, sc_time_unit tu,
00327               const sc_event_or_list& el,
00328               int seg_id,
00329               sc_simcontext* simc = sc_get_curr_simcontext() )
00330 {
00331     next_trigger( sc_time( v, tu, simc ), el, seg_id, simc );
00332 }
00333 
00338 
00339 extern
00340 void
00341 next_trigger( const sc_time&,
00342               const sc_event_and_list&,
00343               int,
00344               sc_simcontext* = sc_get_curr_simcontext() );
00345 
00350 
00351 inline
00352 void
00353 next_trigger( double v, sc_time_unit tu,
00354               const sc_event_and_list& el,
00355               int seg_id,
00356               sc_simcontext* simc = sc_get_curr_simcontext() )
00357 {
00358     next_trigger( sc_time( v, tu, simc ), el, seg_id, simc );
00359 }
00360 
00361 
00362 
00363 
00364 extern
00365 bool
00366 timed_out( sc_simcontext* = sc_get_curr_simcontext() );
00367 
00368 
00369 
00370 extern
00371 void
00372 sc_set_location( const char*,
00373                  int,
00374                  sc_simcontext* = sc_get_curr_simcontext() );
00375 
00376 } 
00377 
00378 
00379 
00380 
00381 
00382 
00383 
00384 
00385 
00386 
00387 
00388 
00389 
00390 
00391 
00392 
00393 
00394 
00395 
00396 
00397 
00398 
00399 
00400 
00401 
00402 
00403 
00404 
00405 
00406 
00407 
00408 
00409 
00410 
00411 
00412 
00413 
00414 
00415 
00416 
00417 
00418 
00419 
00420 
00421 
00422 
00423 
00424 
00425 
00426 #endif
00427 
00428