comparison packages/infra/current/include/cyg_trac.h @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents 3111d98ba7b3
children c38311975d4f
comparison
equal deleted inserted replaced
1:72f549f0d891 2:443894e2e912
1 #ifndef CYGONCE_INFRA_CYG_TRAC_H 1 #ifndef CYGONCE_INFRA_CYG_TRAC_H
2 #define CYGONCE_INFRA_CYG_TRAC_H 2 #define CYGONCE_INFRA_CYG_TRAC_H
3 3
4 //========================================================================== 4 //==========================================================================
5 // 5 //
6 // cyg_trac.h 6 // cyg_trac.h
7 // 7 //
8 // Macros and prototypes for the tracing system 8 // Macros and prototypes for the tracing system
9 // 9 //
10 //========================================================================== 10 //==========================================================================
11 //####COPYRIGHTBEGIN#### 11 //####COPYRIGHTBEGIN####
12 // 12 //
13 // ------------------------------------------- 13 // -------------------------------------------
23 // 23 //
24 // The Original Code is eCos - Embedded Cygnus Operating System, released 24 // The Original Code is eCos - Embedded Cygnus Operating System, released
25 // September 30, 1998. 25 // September 30, 1998.
26 // 26 //
27 // The Initial Developer of the Original Code is Cygnus. Portions created 27 // The Initial Developer of the Original Code is Cygnus. Portions created
28 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. 28 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
29 // ------------------------------------------- 29 // -------------------------------------------
30 // 30 //
31 //####COPYRIGHTEND#### 31 //####COPYRIGHTEND####
32 //========================================================================== 32 //==========================================================================
33 //#####DESCRIPTIONBEGIN#### 33 //#####DESCRIPTIONBEGIN####
34 // 34 //
35 // Author(s): nickg from an original by hmt 35 // Author(s): nickg from an original by hmt
36 // Contributors: nickg 36 // Contributors: nickg
37 // Date: 1998-04-23 37 // Date: 1998-04-23
38 // Purpose: Use traces to log procedure entry, and "print" stuff 38 // Purpose: Use traces to log procedure entry, and "print" stuff
39 // Description: Runtime logging messages that compile to nothing in 39 // Description: Runtime logging messages that compile to nothing in
40 // release versions of the code, to allow 40 // release versions of the code, to allow
41 // as-you-go tracing of alternate builds. 41 // as-you-go tracing of alternate builds.
42 // Usage: #include <cyg/infra/cyg_trac.h> 42 // Usage: #include <cyg/infra/cyg_trac.h>
43 // ... 43 // ...
44 // CYG_TRACE2( PIPE_TRACE, "pipe %x, data %d", ppipe, oword ); 44 // CYG_TRACE2( PIPE_TRACE, "pipe %x, data %d", ppipe, oword );
45 // 45 //
46 // which can result, for example, in a message of the form: 46 // which can result, for example, in a message of the form:
47 // "TRACE: pipemgr.cxx:1340, write_pipe(): pipe 0x8004c, data 17" 47 // "TRACE: pipemgr.cxx:1340, write_pipe(): pipe 0x8004c, data 17"
48 // 48 //
49 //####DESCRIPTIONEND#### 49 //####DESCRIPTIONEND####
128 printing the function arguments, and detecting returns without logging (or 128 printing the function arguments, and detecting returns without logging (or
129 without a value!). 129 without a value!).
130 130
131 The basic facility is 131 The basic facility is
132 132
133 CYG_REPORT_FUNCTION(); 133 CYG_REPORT_FUNCTION();
134 134
135 In C, place this between the local variable declarations and the first 135 In C, place this between the local variable declarations and the first
136 statement or errors will ensue. C++ is more flexible; place the macro as 136 statement or errors will ensue. C++ is more flexible; place the macro as
137 the first line of all functions you wish to trace. The following 137 the first line of all functions you wish to trace. The following
138 variations are also provided: 138 variations are also provided:
139 139
140 CYG_REPORT_FUNCTYPE( exitmsg ) provide a printf string for the type 140 CYG_REPORT_FUNCTYPE( exitmsg ) provide a printf string for the type
141 of the returned value 141 of the returned value
142 CYG_REPORT_FUNCNAME( name ) supply a function name explicitly, for 142 CYG_REPORT_FUNCNAME( name ) supply a function name explicitly, for
143 if __FUNCTION__ is not supported 143 if __FUNCTION__ is not supported
144 CYG_REPORT_FUNCNAMETYPE( name, exitmsg ) both of the above extensions 144 CYG_REPORT_FUNCNAMETYPE( name, exitmsg ) both of the above extensions
145 145
146 These are unconditional; the assumption is that if function reporting is 146 These are unconditional; the assumption is that if function reporting is
179 are needed. 179 are needed.
180 180
181 Examples: 181 Examples:
182 int myfunction() 182 int myfunction()
183 { 183 {
184 CYG_REPORT_FUNCTYPE( "recode is %d" ); 184 CYG_REPORT_FUNCTYPE( "recode is %d" );
185 185
186 A function return is traced using 186 A function return is traced using
187 187
188 CYG_REPORT_RETURN() a void return 188 CYG_REPORT_RETURN() a void return
189 CYG_REPORT_RETVAL( value ) returning a value 189 CYG_REPORT_RETVAL( value ) returning a value
190 190
191 With the CYG_REPORT_FUNCTYPE example, the latter might produce a message 191 With the CYG_REPORT_FUNCTYPE example, the latter might produce a message
192 like: 192 like:
193 193
194 TRACE:myprog.c[40]fact(): enter 194 TRACE:myprog.c[40]fact(): enter
195 TRACE:myprog.c[53]fact(): retcode is 24 195 TRACE:myprog.c[53]fact(): retcode is 24
196 196
197 It is also useful to trace the values of the arguments to a function: 197 It is also useful to trace the values of the arguments to a function:
198 CYG_REPORT_FUNCARGVOID confirms that the function is void 198 CYG_REPORT_FUNCARGVOID confirms that the function is void
199 CYG_REPORT_FUNCARG1( format, arg ) printf-style 199 CYG_REPORT_FUNCARG1( format, arg ) printf-style
200 to 200 to
201 CYG_REPORT_FUNCARG8( format, arg1...arg8 ) printf-style 201 CYG_REPORT_FUNCARG8( format, arg1...arg8 ) printf-style
202 202
203 The CYG_REPORT_FUNCARG[1-8] macros are also offered with the convenience 203 The CYG_REPORT_FUNCARG[1-8] macros are also offered with the convenience
204 extensions: D, X, or Y, and V like the explicit tracing macros. For 204 extensions: D, X, or Y, and V like the explicit tracing macros. For
205 example: 205 example:
206 206
207 int fact( int number ) 207 int fact( int number )
208 { 208 {
209 CYG_REPORT_FUNCTYPE( "recode is %d" ); 209 CYG_REPORT_FUNCTYPE( "recode is %d" );
210 CYG_REPORT_FUNCARG1DV( number ); 210 CYG_REPORT_FUNCARG1DV( number );
211 int result = number; 211 int result = number;
212 while ( --number > 1 ) result *= number 212 while ( --number > 1 ) result *= number
213 CYG_REPORT_RETVAL( result ); 213 CYG_REPORT_RETVAL( result );
214 return result; 214 return result;
215 } 215 }
216 216
217 might produce: 217 might produce:
218 218
255 Explicit tracing 255 Explicit tracing
256 ---------------- 256 ----------------
257 257
258 CYG_TRACE0( bool, msg ) if bool, print msg 258 CYG_TRACE0( bool, msg ) if bool, print msg
259 CYG_TRACE1( bool, msg, arg ) if bool, printf-style 259 CYG_TRACE1( bool, msg, arg ) if bool, printf-style
260 to 260 to
261 CYG_TRACE8( bool, msg, arg1...arg8 ) if bool, printf-style 261 CYG_TRACE8( bool, msg, arg1...arg8 ) if bool, printf-style
262 262
263 CYG_TRACE0B( msg, args... ) to CYG_TRACE8B() use CYG_TRACE_USER_BOOL 263 CYG_TRACE0B( msg, args... ) to CYG_TRACE8B() use CYG_TRACE_USER_BOOL
264 264
265 CYG_TRACE1X( bool, args... ) to CYG_TRACE8X() print args using %08x 265 CYG_TRACE1X( bool, args... ) to CYG_TRACE8X() print args using %08x
266 CYG_TRACE1Y( bool, args... ) to CYG_TRACE8Y() print args using %x 266 CYG_TRACE1Y( bool, args... ) to CYG_TRACE8Y() print args using %x
267 CYG_TRACE1D( bool, args... ) to CYG_TRACE8D() print args using %d 267 CYG_TRACE1D( bool, args... ) to CYG_TRACE8D() print args using %d
268 268
269 CYG_TRACE1XV( bool, args... ) to CYG_TRACE8XV() print args using "arg=%08x" 269 CYG_TRACE1XV( bool, args... ) to CYG_TRACE8XV() print args using "arg=%08x"
270 CYG_TRACE1YV( bool, args... ) to CYG_TRACE8YV() print args using "arg=%x" 270 CYG_TRACE1YV( bool, args... ) to CYG_TRACE8YV() print args using "arg=%x"
271 CYG_TRACE1DV( bool, args... ) to CYG_TRACE8DV() print args using "arg=%d" 271 CYG_TRACE1DV( bool, args... ) to CYG_TRACE8DV() print args using "arg=%d"
272 272
273 CYG_TRACE1XB( args... ) to CYG_TRACE8XB() print using %08x, no bool 273 CYG_TRACE1XB( args... ) to CYG_TRACE8XB() print using %08x, no bool
274 CYG_TRACE1YB( args... ) to CYG_TRACE8YB() print using %x, no bool 274 CYG_TRACE1YB( args... ) to CYG_TRACE8YB() print using %x, no bool
275 CYG_TRACE1DB( args... ) to CYG_TRACE8DB() print using %d, no bool 275 CYG_TRACE1DB( args... ) to CYG_TRACE8DB() print using %d, no bool
276 276
277 CYG_TRACE1XVB( args... ) to CYG_TRACE8XVB() use "arg=%08x", no bool 277 CYG_TRACE1XVB( args... ) to CYG_TRACE8XVB() use "arg=%08x", no bool
278 CYG_TRACE1YVB( args... ) to CYG_TRACE8YVB() use "arg=%x", no bool 278 CYG_TRACE1YVB( args... ) to CYG_TRACE8YVB() use "arg=%x", no bool
279 CYG_TRACE1DVB( args... ) to CYG_TRACE8DVB() use "arg=%d", no bool 279 CYG_TRACE1DVB( args... ) to CYG_TRACE8DVB() use "arg=%d", no bool
280 280
281 Function tracing 281 Function tracing
282 ---------------- 282 ----------------
283 283
284 CYG_REPORT_FUNCTION() default function entry 284 CYG_REPORT_FUNCTION() default function entry
285 CYG_REPORT_FUNCNAME( name ) name the function 285 CYG_REPORT_FUNCNAME( name ) name the function
286 CYG_REPORT_FUNCTYPE( exitmsg ) printf for retval 286 CYG_REPORT_FUNCTYPE( exitmsg ) printf for retval
287 CYG_REPORT_FUNCNAMETYPE( name, exitmsg ) both 287 CYG_REPORT_FUNCNAMETYPE( name, exitmsg ) both
288 288
289 CYG_REPORT_FUNCTIONC() as above, but conditional 289 CYG_REPORT_FUNCTIONC() as above, but conditional
290 CYG_REPORT_FUNCNAMEC( name ) on CYG_REPORT_USER_BOOL 290 CYG_REPORT_FUNCNAMEC( name ) on CYG_REPORT_USER_BOOL
291 CYG_REPORT_FUNCTYPEC( exitmsg ) however it is defined 291 CYG_REPORT_FUNCTYPEC( exitmsg ) however it is defined
292 CYG_REPORT_FUNCNAMETYPEC( name, exitmsg ) ... 292 CYG_REPORT_FUNCNAMETYPEC( name, exitmsg ) ...
293 293
294 CYG_REPORT_RETURN() void function exit 294 CYG_REPORT_RETURN() void function exit
295 CYG_REPORT_RETVAL( value ) returning value 295 CYG_REPORT_RETVAL( value ) returning value
296 296
297 CYG_REPORT_FUNCARGVOID() void function entry 297 CYG_REPORT_FUNCARGVOID() void function entry
298 CYG_REPORT_FUNCARG1( format, arg ) printf-style 298 CYG_REPORT_FUNCARG1( format, arg ) printf-style
299 to 299 to
300 CYG_REPORT_FUNCARG8( format, arg1...arg8 ) printf-style 300 CYG_REPORT_FUNCARG8( format, arg1...arg8 ) printf-style
301 301
302 CYG_REPORT_FUNCARG1X( arg ) 302 CYG_REPORT_FUNCARG1X( arg )
303 to 303 to
304 CYG_REPORT_FUNCARG8X( arg1...arg8 ) use %08x 304 CYG_REPORT_FUNCARG8X( arg1...arg8 ) use %08x
305 CYG_REPORT_FUNCARG1Y... use %x 305 CYG_REPORT_FUNCARG1Y... use %x
306 CYG_REPORT_FUNCARG1D... use %d 306 CYG_REPORT_FUNCARG1D... use %d
307 307
308 CYG_REPORT_FUNCARG1XV... use "arg=%08x" 308 CYG_REPORT_FUNCARG1XV... use "arg=%08x"
309 CYG_REPORT_FUNCARG1YV... use "arg=%x" 309 CYG_REPORT_FUNCARG1YV... use "arg=%x"
310 CYG_REPORT_FUNCARG1DV... use "arg=%d" 310 CYG_REPORT_FUNCARG1DV... use "arg=%d"
311 311
312 312
313 --------------------------------------------------------------------------- 313 ---------------------------------------------------------------------------
314 314
315 Internal Documentation 315 Internal Documentation
320 externC void 320 externC void
321 cyg_tracenomsg( char *psz_func, char *psz_file, cyg_uint32 linenum ); 321 cyg_tracenomsg( char *psz_func, char *psz_file, cyg_uint32 linenum );
322 322
323 externC void 323 externC void
324 cyg_tracemsg( cyg_uint32 what, 324 cyg_tracemsg( cyg_uint32 what,
325 char *psz_func, char *psz_file, cyg_uint32 linenum, 325 char *psz_func, char *psz_file, cyg_uint32 linenum,
326 char *psz_msg ); 326 char *psz_msg );
327 327
328 externC void 328 externC void
329 cyg_tracemsg2( cyg_uint32 what, 329 cyg_tracemsg2( cyg_uint32 what,
330 char *psz_func, char *psz_file, cyg_uint32 linenum, 330 char *psz_func, char *psz_file, cyg_uint32 linenum,
331 char *psz_msg, 331 char *psz_msg,
332 CYG_ADDRWORD arg0, CYG_ADDRWORD arg1 ); 332 CYG_ADDRWORD arg0, CYG_ADDRWORD arg1 );
333 // extended in the obvious way for 4,6,8 arguments 333 // extended in the obvious way for 4,6,8 arguments
334 334
335 These functions should expect psz_func and psz_file to possibly be NULL in 335 These functions should expect psz_func and psz_file to possibly be NULL in
336 case those facilities are not available in the compilation environment, and 336 case those facilities are not available in the compilation environment, and
337 do something safe in such cases. A NULL message should really be dealt 337 do something safe in such cases. A NULL message should really be dealt
376 #ifdef CYGDBG_USE_TRACING 376 #ifdef CYGDBG_USE_TRACING
377 377
378 // ------------------------------------------------------------------------- 378 // -------------------------------------------------------------------------
379 // We define macros and appropriate prototypes for the trace/fail 379 // We define macros and appropriate prototypes for the trace/fail
380 // system. These are: 380 // system. These are:
381 // CYG_TRACE0..8 - trace if boolean 381 // CYG_TRACE0..8 - trace if boolean
382 // CYG_TRACEPROC - default no comment proc entry 382 // CYG_TRACEPROC - default no comment proc entry
383 // CYG_TRACEPROCOUT - default no comment proc exit 383 // CYG_TRACEPROCOUT - default no comment proc exit
384 384
385 // these are executed to deal with tracing - breakpoint? 385 // these are executed to deal with tracing - breakpoint?
386 386
387 externC void 387 externC void
388 cyg_tracenomsg( char *psz_func, char *psz_file, cyg_uint32 linenum ); 388 cyg_tracenomsg( char *psz_func, char *psz_file, cyg_uint32 linenum );
437 // ------------------------------------------------------------------------- 437 // -------------------------------------------------------------------------
438 438
439 # ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 439 # ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
440 440
441 # define CYG_TRACE_docall0( _msg_ ) \ 441 # define CYG_TRACE_docall0( _msg_ ) \
442 cyg_tracemsg( cyg_trace_trace, \ 442 cyg_tracemsg( cyg_trace_trace, \
443 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_ ); 443 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_ );
444 444
445 # define CYG_TRACE_docall2( _msg_, _arg0_, _arg1_ ) \ 445 # define CYG_TRACE_docall2( _msg_, _arg0_, _arg1_ ) \
446 cyg_tracemsg2( cyg_trace_trace, \ 446 cyg_tracemsg2( cyg_trace_trace, \
447 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \ 447 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \
448 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_ ); 448 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_ );
449 449
450 # define CYG_TRACE_docall4( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_ ) \ 450 # define CYG_TRACE_docall4( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_ ) \
451 cyg_tracemsg4( cyg_trace_trace, \ 451 cyg_tracemsg4( cyg_trace_trace, \
452 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \ 452 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \
453 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \ 453 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \
454 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_ ); 454 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_ );
455 455
456 # define CYG_TRACE_docall6( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \ 456 # define CYG_TRACE_docall6( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \
457 _arg4_, _arg5_ ) \ 457 _arg4_, _arg5_ ) \
458 cyg_tracemsg6( cyg_trace_trace, \ 458 cyg_tracemsg6( cyg_trace_trace, \
459 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \ 459 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \
460 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \ 460 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \
461 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_, \ 461 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_, \
462 (CYG_ADDRWORD)_arg4_, (CYG_ADDRWORD)_arg5_ ); 462 (CYG_ADDRWORD)_arg4_, (CYG_ADDRWORD)_arg5_ );
463 463
464 # define CYG_TRACE_docall8( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \ 464 # define CYG_TRACE_docall8( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \
465 _arg4_, _arg5_, _arg6_, _arg7_ ) \ 465 _arg4_, _arg5_, _arg6_, _arg7_ ) \
466 cyg_tracemsg8( cyg_trace_trace, \ 466 cyg_tracemsg8( cyg_trace_trace, \
467 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \ 467 __PRETTY_FUNCTION__, __FILE__, __LINE__, _msg_, \
468 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \ 468 (CYG_ADDRWORD)_arg0_, (CYG_ADDRWORD)_arg1_, \
469 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_, \ 469 (CYG_ADDRWORD)_arg2_, (CYG_ADDRWORD)_arg3_, \
470 (CYG_ADDRWORD)_arg4_, (CYG_ADDRWORD)_arg5_, \ 470 (CYG_ADDRWORD)_arg4_, (CYG_ADDRWORD)_arg5_, \
471 (CYG_ADDRWORD)_arg6_, (CYG_ADDRWORD)_arg7_ ); 471 (CYG_ADDRWORD)_arg6_, (CYG_ADDRWORD)_arg7_ );
472 472
473 # else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 473 # else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
474 474
475 # define CYG_TRACE_docall0( _msg_ ) \ 475 # define CYG_TRACE_docall0( _msg_ ) \
480 480
481 # define CYG_TRACE_docall4( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_ ) \ 481 # define CYG_TRACE_docall4( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_ ) \
482 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ ); 482 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ );
483 483
484 # define CYG_TRACE_docall6( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \ 484 # define CYG_TRACE_docall6( _msg_, _arg0_, _arg1_ , _arg2_, _arg3_, \
485 _arg4_, _arg5_ ) \ 485 _arg4_, _arg5_ ) \
486 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ ); 486 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ );
487 487
488 # define CYG_TRACE_docall8( _msg_, _arg0_, _arg1_, _arg2_, _arg3_, \ 488 # define CYG_TRACE_docall8( _msg_, _arg0_, _arg1_, _arg2_, _arg3_, \
489 _arg4_, _arg5_, _arg6_, _arg7_ ) \ 489 _arg4_, _arg5_, _arg6_, _arg7_ ) \
490 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ ); 490 cyg_tracenomsg( __PRETTY_FUNCTION__, __FILE__, __LINE__ );
491 491
492 #endif 492 #endif
493 493
494 // ------------------------------------------------------------------------- 494 // -------------------------------------------------------------------------
495 // Conditioned trace; if the condition is false, fail. 495 // Conditioned trace; if the condition is false, fail.
496 496
497 #define CYG_TRACE0( _bool_, _msg_ ) \ 497 #define CYG_TRACE0( _bool_, _msg_ ) \
498 CYG_MACRO_START \ 498 CYG_MACRO_START \
499 if ( ( _bool_ ) ) \ 499 if ( ( _bool_ ) ) \
500 CYG_TRACE_docall0( _msg_ ); \ 500 CYG_TRACE_docall0( _msg_ ); \
501 CYG_MACRO_END 501 CYG_MACRO_END
502 502
503 #define CYG_TRACE1( _bool_, _msg_, a ) \ 503 #define CYG_TRACE1( _bool_, _msg_, a ) \
504 CYG_MACRO_START \ 504 CYG_MACRO_START \
505 if ( ( _bool_ ) ) \ 505 if ( ( _bool_ ) ) \
506 CYG_TRACE_docall2( _msg_, a, 0 ); \ 506 CYG_TRACE_docall2( _msg_, a, 0 ); \
507 CYG_MACRO_END 507 CYG_MACRO_END
508 508
509 #define CYG_TRACE2( _bool_, _msg_, a, b ) \ 509 #define CYG_TRACE2( _bool_, _msg_, a, b ) \
510 CYG_MACRO_START \ 510 CYG_MACRO_START \
511 if ( ( _bool_ ) ) \ 511 if ( ( _bool_ ) ) \
512 CYG_TRACE_docall2( _msg_, a, b ); \ 512 CYG_TRACE_docall2( _msg_, a, b ); \
513 CYG_MACRO_END 513 CYG_MACRO_END
514 514
515 #define CYG_TRACE3( _bool_, _msg_, a, b, c ) \ 515 #define CYG_TRACE3( _bool_, _msg_, a, b, c ) \
516 CYG_MACRO_START \ 516 CYG_MACRO_START \
517 if ( ( _bool_ ) ) \ 517 if ( ( _bool_ ) ) \
518 CYG_TRACE_docall4( _msg_, a, b, c, 0 ); \ 518 CYG_TRACE_docall4( _msg_, a, b, c, 0 ); \
519 CYG_MACRO_END 519 CYG_MACRO_END
520 520
521 #define CYG_TRACE4( _bool_, _msg_, a, b, c, d ) \ 521 #define CYG_TRACE4( _bool_, _msg_, a, b, c, d ) \
522 CYG_MACRO_START \ 522 CYG_MACRO_START \
523 if ( ( _bool_ ) ) \ 523 if ( ( _bool_ ) ) \
524 CYG_TRACE_docall4( _msg_, a, b, c, d ); \ 524 CYG_TRACE_docall4( _msg_, a, b, c, d ); \
525 CYG_MACRO_END 525 CYG_MACRO_END
526 526
527 #define CYG_TRACE5( _bool_, _msg_, a, b, c, d, e ) \ 527 #define CYG_TRACE5( _bool_, _msg_, a, b, c, d, e ) \
528 CYG_MACRO_START \ 528 CYG_MACRO_START \
529 if ( ( _bool_ ) ) \ 529 if ( ( _bool_ ) ) \
530 CYG_TRACE_docall6( _msg_, a, b, c, d, e, 0 ); \ 530 CYG_TRACE_docall6( _msg_, a, b, c, d, e, 0 ); \
531 CYG_MACRO_END 531 CYG_MACRO_END
532 532
533 #define CYG_TRACE6( _bool_, _msg_, a, b, c, d, e, f ) \ 533 #define CYG_TRACE6( _bool_, _msg_, a, b, c, d, e, f ) \
534 CYG_MACRO_START \ 534 CYG_MACRO_START \
535 if ( ( _bool_ ) ) \ 535 if ( ( _bool_ ) ) \
536 CYG_TRACE_docall6( _msg_, a, b, c, d, e, f ); \ 536 CYG_TRACE_docall6( _msg_, a, b, c, d, e, f ); \
537 CYG_MACRO_END 537 CYG_MACRO_END
538 538
539 #define CYG_TRACE7( _bool_, _msg_, a, b, c, d, e, f, g ) \ 539 #define CYG_TRACE7( _bool_, _msg_, a, b, c, d, e, f, g ) \
540 CYG_MACRO_START \ 540 CYG_MACRO_START \
541 if ( ( _bool_ ) ) \ 541 if ( ( _bool_ ) ) \
542 CYG_TRACE_docall8( _msg_, a, b, c, d, e, f, g, 0 ); \ 542 CYG_TRACE_docall8( _msg_, a, b, c, d, e, f, g, 0 ); \
543 CYG_MACRO_END 543 CYG_MACRO_END
544 544
545 #define CYG_TRACE8( _bool_, _msg_, a, b, c, d, e, f, g, h ) \ 545 #define CYG_TRACE8( _bool_, _msg_, a, b, c, d, e, f, g, h ) \
546 CYG_MACRO_START \ 546 CYG_MACRO_START \
547 if ( ( _bool_ ) ) \ 547 if ( ( _bool_ ) ) \
548 CYG_TRACE_docall8( _msg_, a, b, c, d, e, f, g, h ); \ 548 CYG_TRACE_docall8( _msg_, a, b, c, d, e, f, g, h ); \
549 CYG_MACRO_END 549 CYG_MACRO_END
550 550
551 // ------------------------------------------------------------------------- 551 // -------------------------------------------------------------------------
552 // Report function entry and exit. 552 // Report function entry and exit.
553 // In C++ the macro CYG_REPORT_FUNCTION should appear as the first line of 553 // In C++ the macro CYG_REPORT_FUNCTION should appear as the first line of
663 663
664 // These have no CYG_MACRO_START,END around because it is required 664 // These have no CYG_MACRO_START,END around because it is required
665 // that the scope of the object be the whole function body. Get it? 665 // that the scope of the object be the whole function body. Get it?
666 666
667 // These are the unconditional versions: 667 // These are the unconditional versions:
668 #define CYG_REPORT_FUNCTION() \ 668 #define CYG_REPORT_FUNCTION() \
669 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 669 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
670 1, __PRETTY_FUNCTION__, \ 670 1, __PRETTY_FUNCTION__, \
671 __FILE__, __LINE__ ) 671 __FILE__, __LINE__ )
672 672
673 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) \ 673 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) \
674 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 674 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
675 1, __PRETTY_FUNCTION__, \ 675 1, __PRETTY_FUNCTION__, \
676 __FILE__, __LINE__, _exitmsg_ ) 676 __FILE__, __LINE__, _exitmsg_ )
677 677
678 #define CYG_REPORT_FUNCNAME( _name_ ) \ 678 #define CYG_REPORT_FUNCNAME( _name_ ) \
679 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 679 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
680 1, _name_, \ 680 1, _name_, \
681 __FILE__, __LINE__ ) 681 __FILE__, __LINE__ )
682 682
683 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) \ 683 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) \
684 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 684 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
685 1, _name_, \ 685 1, _name_, \
686 __FILE__, __LINE__, _exitmsg_ ) 686 __FILE__, __LINE__, _exitmsg_ )
687 687
688 // These are conditioned on macro CYG_REPORT_USER_BOOL 688 // These are conditioned on macro CYG_REPORT_USER_BOOL
689 // (which you better have defined) 689 // (which you better have defined)
690 #define CYG_REPORT_FUNCTIONC() \ 690 #define CYG_REPORT_FUNCTIONC() \
691 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 691 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
692 CYG_REPORT_USER_BOOL, __PRETTY_FUNCTION__, \ 692 CYG_REPORT_USER_BOOL, __PRETTY_FUNCTION__, \
693 __FILE__, __LINE__ ) 693 __FILE__, __LINE__ )
694 694
695 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) \ 695 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) \
696 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 696 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
697 CYG_REPORT_USER_BOOL, __PRETTY_FUNCTION__, \ 697 CYG_REPORT_USER_BOOL, __PRETTY_FUNCTION__, \
698 __FILE__, __LINE__, _exitmsg_ ) 698 __FILE__, __LINE__, _exitmsg_ )
699 699
700 #define CYG_REPORT_FUNCNAMEC( _name_ ) \ 700 #define CYG_REPORT_FUNCNAMEC( _name_ ) \
701 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 701 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
702 CYG_REPORT_USER_BOOL, _name_, \ 702 CYG_REPORT_USER_BOOL, _name_, \
703 __FILE__, __LINE__ ) 703 __FILE__, __LINE__ )
704 704
705 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) \ 705 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) \
706 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \ 706 Cyg_TraceFunction_Report_ cyg_tracefunction_report_( \
707 CYG_REPORT_USER_BOOL, _name_, \ 707 CYG_REPORT_USER_BOOL, _name_, \
708 __FILE__, __LINE__, _exitmsg_ ) 708 __FILE__, __LINE__, _exitmsg_ )
709 709
710 710
711 #define CYG_REPORT_RETURN() CYG_MACRO_START \ 711 #define CYG_REPORT_RETURN() CYG_MACRO_START \
712 cyg_tracefunction_report_.set_exitvoid( __LINE__ ); \ 712 cyg_tracefunction_report_.set_exitvoid( __LINE__ ); \
713 CYG_MACRO_END 713 CYG_MACRO_END
714 714
715 #define CYG_REPORT_RETVAL( _value_) CYG_MACRO_START \ 715 #define CYG_REPORT_RETVAL( _value_) CYG_MACRO_START \
716 cyg_tracefunction_report_.set_exitvalue( \ 716 cyg_tracefunction_report_.set_exitvalue( \
717 __LINE__, (CYG_ADDRWORD)(_value_) ); \ 717 __LINE__, (CYG_ADDRWORD)(_value_) ); \
718 CYG_MACRO_END 718 CYG_MACRO_END
719 719
720 720
721 #else // not __cplusplus 721 #else // not __cplusplus
722 722
735 735
736 }; 736 };
737 737
738 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 738 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
739 739
740 #define CYG_REPORT_FUNCTION_ENTER_INTERNAL() CYG_MACRO_START \ 740 #define CYG_REPORT_FUNCTION_ENTER_INTERNAL() CYG_MACRO_START \
741 if ( cyg_tracefunction_report_.cond ) \ 741 if ( cyg_tracefunction_report_.cond ) \
742 cyg_tracemsg( cyg_trace_enter, \ 742 cyg_tracemsg( cyg_trace_enter, \
743 cyg_tracefunction_report_.func, \ 743 cyg_tracefunction_report_.func, \
744 cyg_tracefunction_report_.file, \ 744 cyg_tracefunction_report_.file, \
745 cyg_tracefunction_report_.lnum, \ 745 cyg_tracefunction_report_.lnum, \
746 "enter" ); \ 746 "enter" ); \
747 CYG_MACRO_END 747 CYG_MACRO_END
748 748
749 #define CYG_REPORT_FUNCTION_CONSTRUCT( _c_, _fn_,_fl_,_l_,_xm_,_xv_,_xs_ ) \ 749 #define CYG_REPORT_FUNCTION_CONSTRUCT( _c_, _fn_,_fl_,_l_,_xm_,_xv_,_xs_ ) \
750 { _c_, _fn_, _fl_, _l_, _xm_, _xv_, _xs_ } 750 { _c_, _fn_, _fl_, _l_, _xm_, _xv_, _xs_ }
751 751
752 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 752 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
753 753
754 #define CYG_REPORT_FUNCTION_ENTER_INTERNAL() CYG_MACRO_START \ 754 #define CYG_REPORT_FUNCTION_ENTER_INTERNAL() CYG_MACRO_START \
755 if ( cyg_tracefunction_report_.cond ) \ 755 if ( cyg_tracefunction_report_.cond ) \
756 cyg_tracenomsg( cyg_tracefunction_report_.func, \ 756 cyg_tracenomsg( cyg_tracefunction_report_.func, \
757 cyg_tracefunction_report_.file, \ 757 cyg_tracefunction_report_.file, \
758 cyg_tracefunction_report_.lnum ); \ 758 cyg_tracefunction_report_.lnum ); \
759 CYG_MACRO_END 759 CYG_MACRO_END
760 760
761 #define CYG_REPORT_FUNCTION_CONSTRUCT( _c_, _fn_,_fl_,_l_,_xm_,_xv_,_xs_ ) \ 761 #define CYG_REPORT_FUNCTION_CONSTRUCT( _c_, _fn_,_fl_,_l_,_xm_,_xv_,_xs_ ) \
762 { _c_, _fn_, _fl_, _l_ } 762 { _c_, _fn_, _fl_, _l_ }
763 763
764 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 764 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
765 765
766 // These have no CYG_MACRO_START,END around because it is required 766 // These have no CYG_MACRO_START,END around because it is required
767 // that the scope of the object be the whole function body. Get it? 767 // that the scope of the object be the whole function body. Get it?
768 768
769 // These are the unconditional versions: 769 // These are the unconditional versions:
770 #define CYG_REPORT_FUNCTION() \ 770 #define CYG_REPORT_FUNCTION() \
771 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 771 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
772 CYG_REPORT_FUNCTION_CONSTRUCT( \ 772 CYG_REPORT_FUNCTION_CONSTRUCT( \
773 1, __PRETTY_FUNCTION__, __FILE__, __LINE__, NULL, 0, 0 ); \ 773 1, __PRETTY_FUNCTION__, __FILE__, __LINE__, NULL, 0, 0 ); \
774 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 774 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
775 775
776 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) \ 776 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) \
777 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 777 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
778 CYG_REPORT_FUNCTION_CONSTRUCT( \ 778 CYG_REPORT_FUNCTION_CONSTRUCT( \
779 1, __PRETTY_FUNCTION__, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \ 779 1, __PRETTY_FUNCTION__, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \
780 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 780 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
781 781
782 #define CYG_REPORT_FUNCNAME( _name_ ) \ 782 #define CYG_REPORT_FUNCNAME( _name_ ) \
783 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 783 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
784 CYG_REPORT_FUNCTION_CONSTRUCT( \ 784 CYG_REPORT_FUNCTION_CONSTRUCT( \
785 1, _name_, __FILE__, __LINE__, NULL, 0, 0 ); \ 785 1, _name_, __FILE__, __LINE__, NULL, 0, 0 ); \
786 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 786 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
787 787
788 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) \ 788 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) \
789 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 789 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
790 CYG_REPORT_FUNCTION_CONSTRUCT( \ 790 CYG_REPORT_FUNCTION_CONSTRUCT( \
791 1, _name_, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \ 791 1, _name_, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \
792 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 792 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
793 793
794 // These are conditioned on macro CYG_REPORT_USER_BOOL 794 // These are conditioned on macro CYG_REPORT_USER_BOOL
795 // (which you better have defined) 795 // (which you better have defined)
796 #define CYG_REPORT_FUNCTIONC() \ 796 #define CYG_REPORT_FUNCTIONC() \
797 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 797 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
798 CYG_REPORT_FUNCTION_CONSTRUCT( \ 798 CYG_REPORT_FUNCTION_CONSTRUCT( \
799 CYG_REPORT_USER_BOOL, \ 799 CYG_REPORT_USER_BOOL, \
800 __PRETTY_FUNCTION__, __FILE__, __LINE__, NULL, 0, 0 ); \ 800 __PRETTY_FUNCTION__, __FILE__, __LINE__, NULL, 0, 0 ); \
801 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 801 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
802 802
803 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) \ 803 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) \
804 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 804 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
805 CYG_REPORT_FUNCTION_CONSTRUCT( \ 805 CYG_REPORT_FUNCTION_CONSTRUCT( \
806 CYG_REPORT_USER_BOOL, \ 806 CYG_REPORT_USER_BOOL, \
807 __PRETTY_FUNCTION__, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \ 807 __PRETTY_FUNCTION__, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \
808 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 808 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
809 809
810 #define CYG_REPORT_FUNCNAMEC( _name_ ) \ 810 #define CYG_REPORT_FUNCNAMEC( _name_ ) \
811 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 811 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
812 CYG_REPORT_FUNCTION_CONSTRUCT( \ 812 CYG_REPORT_FUNCTION_CONSTRUCT( \
813 CYG_REPORT_USER_BOOL, \ 813 CYG_REPORT_USER_BOOL, \
814 _name_, __FILE__, __LINE__, NULL, 0, 0 ); \ 814 _name_, __FILE__, __LINE__, NULL, 0, 0 ); \
815 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 815 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
816 816
817 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) \ 817 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) \
818 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \ 818 struct Cyg_TraceFunction_Report_ cyg_tracefunction_report_ = \
819 CYG_REPORT_FUNCTION_CONSTRUCT( \ 819 CYG_REPORT_FUNCTION_CONSTRUCT( \
820 CYG_REPORT_USER_BOOL, \ 820 CYG_REPORT_USER_BOOL, \
821 _name_, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \ 821 _name_, __FILE__, __LINE__, _exitmsg_, 0, 0 ); \
822 CYG_REPORT_FUNCTION_ENTER_INTERNAL() 822 CYG_REPORT_FUNCTION_ENTER_INTERNAL()
823 823
824 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 824 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
825 825
826 #define CYG_REPORT_RETURN() CYG_MACRO_START \ 826 #define CYG_REPORT_RETURN() CYG_MACRO_START \
827 CYG_ASSERT( NULL == cyg_tracefunction_report_.exitmsg, \ 827 CYG_ASSERT( NULL == cyg_tracefunction_report_.exitmsg, \
828 "exitvoid used in typed function" ); \ 828 "exitvoid used in typed function" ); \
829 CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset, \ 829 CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset, \
830 "exitvoid used when arg already set" ); \ 830 "exitvoid used when arg already set" ); \
831 cyg_tracefunction_report_.lnum = __LINE__; \ 831 cyg_tracefunction_report_.lnum = __LINE__; \
832 cyg_tracefunction_report_.exitset = 2; \ 832 cyg_tracefunction_report_.exitset = 2; \
833 if ( cyg_tracefunction_report_.cond ) \ 833 if ( cyg_tracefunction_report_.cond ) \
834 cyg_tracemsg( cyg_trace_return, \ 834 cyg_tracemsg( cyg_trace_return, \
835 cyg_tracefunction_report_.func, \ 835 cyg_tracefunction_report_.func, \
836 cyg_tracefunction_report_.file, \ 836 cyg_tracefunction_report_.file, \
837 cyg_tracefunction_report_.lnum, \ 837 cyg_tracefunction_report_.lnum, \
838 "return void" ); \ 838 "return void" ); \
839 CYG_MACRO_END 839 CYG_MACRO_END
840 840
841 #define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \ 841 #define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \
842 CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset, \ 842 CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset, \
843 "exitvalue used when arg already set" ); \ 843 "exitvalue used when arg already set" ); \
844 cyg_tracefunction_report_.lnum = __LINE__; \ 844 cyg_tracefunction_report_.lnum = __LINE__; \
845 cyg_tracefunction_report_.exitvalue = (CYG_ADDRWORD)(_value_); \ 845 cyg_tracefunction_report_.exitvalue = (CYG_ADDRWORD)(_value_); \
846 cyg_tracefunction_report_.exitset = 1; \ 846 cyg_tracefunction_report_.exitset = 1; \
847 if ( cyg_tracefunction_report_.cond ) \ 847 if ( cyg_tracefunction_report_.cond ) \
848 cyg_tracemsg2( cyg_trace_return, \ 848 cyg_tracemsg2( cyg_trace_return, \
849 cyg_tracefunction_report_.func, \ 849 cyg_tracefunction_report_.func, \
850 cyg_tracefunction_report_.file, \ 850 cyg_tracefunction_report_.file, \
851 cyg_tracefunction_report_.lnum, \ 851 cyg_tracefunction_report_.lnum, \
852 cyg_tracefunction_report_.exitmsg ? \ 852 cyg_tracefunction_report_.exitmsg ? \
853 cyg_tracefunction_report_.exitmsg : \ 853 cyg_tracefunction_report_.exitmsg : \
854 "return %08x", \ 854 "return %08x", \
855 cyg_tracefunction_report_.exitvalue, 0 ); \ 855 cyg_tracefunction_report_.exitvalue, 0 ); \
856 CYG_MACRO_END 856 CYG_MACRO_END
857 857
858 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 858 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
859 859
860 #define CYG_REPORT_RETURN() CYG_MACRO_START \ 860 #define CYG_REPORT_RETURN() CYG_MACRO_START \
861 cyg_tracefunction_report_.lnum = __LINE__; \ 861 cyg_tracefunction_report_.lnum = __LINE__; \
862 if ( cyg_tracefunction_report_.cond ) \ 862 if ( cyg_tracefunction_report_.cond ) \
863 cyg_tracenomsg( cyg_tracefunction_report_.func, \ 863 cyg_tracenomsg( cyg_tracefunction_report_.func, \
864 cyg_tracefunction_report_.file, \ 864 cyg_tracefunction_report_.file, \
865 cyg_tracefunction_report_.lnum ); \ 865 cyg_tracefunction_report_.lnum ); \
866 CYG_MACRO_END 866 CYG_MACRO_END
867 867
868 #define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \ 868 #define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \
869 CYG_REPORT_RETURN(); \ 869 CYG_REPORT_RETURN(); \
870 CYG_MACRO_END 870 CYG_MACRO_END
871 871
872 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 872 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
873 873
874 #endif // not __cplusplus 874 #endif // not __cplusplus
875 875
876 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 876 #ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
877 877
878 #define CYG_REPORT_FUNCARGVOID() CYG_MACRO_START \ 878 #define CYG_REPORT_FUNCARGVOID() CYG_MACRO_START \
879 if ( cyg_tracefunction_report_.cond ) \ 879 if ( cyg_tracefunction_report_.cond ) \
880 cyg_tracemsg( cyg_trace_args, \ 880 cyg_tracemsg( cyg_trace_args, \
881 cyg_tracefunction_report_.func, \ 881 cyg_tracefunction_report_.func, \
882 cyg_tracefunction_report_.file, \ 882 cyg_tracefunction_report_.file, \
883 cyg_tracefunction_report_.lnum, \ 883 cyg_tracefunction_report_.lnum, \
884 "(void)" \ 884 "(void)" \
885 ); \ 885 ); \
886 CYG_MACRO_END 886 CYG_MACRO_END
887 887
888 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_MACRO_START \ 888 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_MACRO_START \
889 if ( cyg_tracefunction_report_.cond ) \ 889 if ( cyg_tracefunction_report_.cond ) \
890 cyg_tracemsg2( cyg_trace_args, \ 890 cyg_tracemsg2( cyg_trace_args, \
891 cyg_tracefunction_report_.func, \ 891 cyg_tracefunction_report_.func, \
892 cyg_tracefunction_report_.file, \ 892 cyg_tracefunction_report_.file, \
893 cyg_tracefunction_report_.lnum, \ 893 cyg_tracefunction_report_.lnum, \
894 (_format_), \ 894 (_format_), \
895 (CYG_ADDRWORD)a , 0 \ 895 (CYG_ADDRWORD)a , 0 \
896 ); \ 896 ); \
897 CYG_MACRO_END 897 CYG_MACRO_END
898 898
899 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_MACRO_START \ 899 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_MACRO_START \
900 if ( cyg_tracefunction_report_.cond ) \ 900 if ( cyg_tracefunction_report_.cond ) \
901 cyg_tracemsg2( cyg_trace_args, \ 901 cyg_tracemsg2( cyg_trace_args, \
902 cyg_tracefunction_report_.func, \ 902 cyg_tracefunction_report_.func, \
903 cyg_tracefunction_report_.file, \ 903 cyg_tracefunction_report_.file, \
904 cyg_tracefunction_report_.lnum, \ 904 cyg_tracefunction_report_.lnum, \
905 (_format_), \ 905 (_format_), \
906 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b \ 906 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b \
907 ); \ 907 ); \
908 CYG_MACRO_END 908 CYG_MACRO_END
909 909
910 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_MACRO_START \ 910 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_MACRO_START \
911 if ( cyg_tracefunction_report_.cond ) \ 911 if ( cyg_tracefunction_report_.cond ) \
912 cyg_tracemsg4( cyg_trace_args, \ 912 cyg_tracemsg4( cyg_trace_args, \
913 cyg_tracefunction_report_.func, \ 913 cyg_tracefunction_report_.func, \
914 cyg_tracefunction_report_.file, \ 914 cyg_tracefunction_report_.file, \
915 cyg_tracefunction_report_.lnum, \ 915 cyg_tracefunction_report_.lnum, \
916 (_format_), \ 916 (_format_), \
917 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 917 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
918 (CYG_ADDRWORD)c , 0 \ 918 (CYG_ADDRWORD)c , 0 \
919 ); \ 919 ); \
920 CYG_MACRO_END 920 CYG_MACRO_END
921 921
922 #define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_MACRO_START \ 922 #define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_MACRO_START \
923 if ( cyg_tracefunction_report_.cond ) \ 923 if ( cyg_tracefunction_report_.cond ) \
924 cyg_tracemsg4( cyg_trace_args, \ 924 cyg_tracemsg4( cyg_trace_args, \
925 cyg_tracefunction_report_.func, \ 925 cyg_tracefunction_report_.func, \
926 cyg_tracefunction_report_.file, \ 926 cyg_tracefunction_report_.file, \
927 cyg_tracefunction_report_.lnum, \ 927 cyg_tracefunction_report_.lnum, \
928 (_format_), \ 928 (_format_), \
929 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 929 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
930 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d \ 930 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d \
931 ); \ 931 ); \
932 CYG_MACRO_END 932 CYG_MACRO_END
933 933
934 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_MACRO_START \ 934 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_MACRO_START \
935 if ( cyg_tracefunction_report_.cond ) \ 935 if ( cyg_tracefunction_report_.cond ) \
936 cyg_tracemsg6( cyg_trace_args, \ 936 cyg_tracemsg6( cyg_trace_args, \
937 cyg_tracefunction_report_.func, \ 937 cyg_tracefunction_report_.func, \
938 cyg_tracefunction_report_.file, \ 938 cyg_tracefunction_report_.file, \
939 cyg_tracefunction_report_.lnum, \ 939 cyg_tracefunction_report_.lnum, \
940 (_format_), \ 940 (_format_), \
941 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 941 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
942 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ 942 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \
943 (CYG_ADDRWORD)e , 0 \ 943 (CYG_ADDRWORD)e , 0 \
944 ); \ 944 ); \
945 CYG_MACRO_END 945 CYG_MACRO_END
946 946
947 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_MACRO_START \ 947 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_MACRO_START \
948 if ( cyg_tracefunction_report_.cond ) \ 948 if ( cyg_tracefunction_report_.cond ) \
949 cyg_tracemsg6( cyg_trace_args, \ 949 cyg_tracemsg6( cyg_trace_args, \
950 cyg_tracefunction_report_.func, \ 950 cyg_tracefunction_report_.func, \
951 cyg_tracefunction_report_.file, \ 951 cyg_tracefunction_report_.file, \
952 cyg_tracefunction_report_.lnum, \ 952 cyg_tracefunction_report_.lnum, \
953 (_format_), \ 953 (_format_), \
954 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 954 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
955 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ 955 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \
956 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f \ 956 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f \
957 ); \ 957 ); \
958 CYG_MACRO_END 958 CYG_MACRO_END
959 959
960 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_MACRO_START \ 960 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_MACRO_START \
961 if ( cyg_tracefunction_report_.cond ) \ 961 if ( cyg_tracefunction_report_.cond ) \
962 cyg_tracemsg8( cyg_trace_args, \ 962 cyg_tracemsg8( cyg_trace_args, \
963 cyg_tracefunction_report_.func, \ 963 cyg_tracefunction_report_.func, \
964 cyg_tracefunction_report_.file, \ 964 cyg_tracefunction_report_.file, \
965 cyg_tracefunction_report_.lnum, \ 965 cyg_tracefunction_report_.lnum, \
966 (_format_), \ 966 (_format_), \
967 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 967 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
968 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ 968 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \
969 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \ 969 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \
970 (CYG_ADDRWORD)g , 0 \ 970 (CYG_ADDRWORD)g , 0 \
971 ); \ 971 ); \
972 CYG_MACRO_END 972 CYG_MACRO_END
973 973
974 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_MACRO_START\ 974 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_MACRO_START\
975 if ( cyg_tracefunction_report_.cond ) \ 975 if ( cyg_tracefunction_report_.cond ) \
976 cyg_tracemsg8( cyg_trace_args, \ 976 cyg_tracemsg8( cyg_trace_args, \
977 cyg_tracefunction_report_.func, \ 977 cyg_tracefunction_report_.func, \
978 cyg_tracefunction_report_.file, \ 978 cyg_tracefunction_report_.file, \
979 cyg_tracefunction_report_.lnum, \ 979 cyg_tracefunction_report_.lnum, \
980 (_format_), \ 980 (_format_), \
981 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ 981 (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \
982 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ 982 (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \
983 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \ 983 (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \
984 (CYG_ADDRWORD)g, (CYG_ADDRWORD)h, \ 984 (CYG_ADDRWORD)g, (CYG_ADDRWORD)h \
985 ); \ 985 ); \
986 CYG_MACRO_END 986 CYG_MACRO_END
987 987
988 988
989 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 989 #else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
990 990
1000 1000
1001 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE 1001 #endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
1002 1002
1003 #else // no CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS 1003 #else // no CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
1004 1004
1005 #define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT 1005 #define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT
1006 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT 1006 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT
1007 #define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT 1007 #define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT
1008 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT 1008 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
1009 1009
1010 #define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT 1010 #define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT
1011 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT 1011 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT
1012 #define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT 1012 #define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT
1013 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT 1013 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
1014 1014
1015 #define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT 1015 #define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
1016 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT 1016 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
1017 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT 1017 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
1018 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT 1018 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
1020 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT 1020 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
1021 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT 1021 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
1022 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT 1022 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
1023 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT 1023 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
1024 1024
1025 #define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT 1025 #define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT
1026 #define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT 1026 #define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT
1027 1027
1028 #endif // CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS 1028 #endif // CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
1029 1029
1030 #else // ! CYGDBG_USE_TRACING 1030 #else // ! CYGDBG_USE_TRACING
1031 1031
1040 #define CYG_TRACE5( _bool_, _msg_, a,b,c,d,e ) CYG_EMPTY_STATEMENT 1040 #define CYG_TRACE5( _bool_, _msg_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
1041 #define CYG_TRACE6( _bool_, _msg_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT 1041 #define CYG_TRACE6( _bool_, _msg_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
1042 #define CYG_TRACE7( _bool_, _msg_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT 1042 #define CYG_TRACE7( _bool_, _msg_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
1043 #define CYG_TRACE8( _bool_, _msg_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT 1043 #define CYG_TRACE8( _bool_, _msg_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
1044 1044
1045 #define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT 1045 #define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT
1046 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT 1046 #define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT
1047 #define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT 1047 #define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT
1048 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT 1048 #define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
1049 1049
1050 #define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT 1050 #define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT
1051 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT 1051 #define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT
1052 #define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT 1052 #define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT
1053 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT 1053 #define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
1054 1054
1055 #define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT 1055 #define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
1056 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT 1056 #define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
1057 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT 1057 #define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
1058 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT 1058 #define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
1060 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT 1060 #define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
1061 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT 1061 #define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
1062 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT 1062 #define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
1063 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT 1063 #define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
1064 1064
1065 #define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT 1065 #define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT
1066 #define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT 1066 #define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT
1067 1067
1068 #endif // ! CYGDBG_USE_TRACING 1068 #endif // ! CYGDBG_USE_TRACING
1069 1069
1070 // ------------------------------------------------------------------------- 1070 // -------------------------------------------------------------------------
1071 // 1071 //
1081 // Third option: 1081 // Third option:
1082 // B: user need not supply a bool; the symbol CYG_TRACE_USER_BOOL is 1082 // B: user need not supply a bool; the symbol CYG_TRACE_USER_BOOL is
1083 // used (which we do not define, user must do this) 1083 // used (which we do not define, user must do this)
1084 1084
1085 #define CYG_TRACE0B( _msg_ ) \ 1085 #define CYG_TRACE0B( _msg_ ) \
1086 CYG_TRACE0( CYG_TRACE_USER_BOOL, _msg_ ) 1086 CYG_TRACE0( CYG_TRACE_USER_BOOL, _msg_ )
1087 #define CYG_TRACE1B( _msg_, a ) \ 1087 #define CYG_TRACE1B( _msg_, a ) \
1088 CYG_TRACE1( CYG_TRACE_USER_BOOL, _msg_, a ) 1088 CYG_TRACE1( CYG_TRACE_USER_BOOL, _msg_, a )
1089 #define CYG_TRACE2B( _msg_, a,b ) \ 1089 #define CYG_TRACE2B( _msg_, a,b ) \
1090 CYG_TRACE2( CYG_TRACE_USER_BOOL, _msg_, a,b ) 1090 CYG_TRACE2( CYG_TRACE_USER_BOOL, _msg_, a,b )
1091 #define CYG_TRACE3B( _msg_, a,b,c ) \ 1091 #define CYG_TRACE3B( _msg_, a,b,c ) \
1092 CYG_TRACE3( CYG_TRACE_USER_BOOL, _msg_, a,b,c ) 1092 CYG_TRACE3( CYG_TRACE_USER_BOOL, _msg_, a,b,c )
1093 #define CYG_TRACE4B( _msg_, a,b,c,d ) \ 1093 #define CYG_TRACE4B( _msg_, a,b,c,d ) \
1094 CYG_TRACE4( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d ) 1094 CYG_TRACE4( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d )
1095 #define CYG_TRACE5B( _msg_, a,b,c,d,e ) \ 1095 #define CYG_TRACE5B( _msg_, a,b,c,d,e ) \
1096 CYG_TRACE5( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e ) 1096 CYG_TRACE5( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e )
1097 #define CYG_TRACE6B( _msg_, a,b,c,d,e,f ) \ 1097 #define CYG_TRACE6B( _msg_, a,b,c,d,e,f ) \
1098 CYG_TRACE6( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f ) 1098 CYG_TRACE6( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f )
1099 #define CYG_TRACE7B( _msg_, a,b,c,d,e,f,g ) \ 1099 #define CYG_TRACE7B( _msg_, a,b,c,d,e,f,g ) \
1100 CYG_TRACE7( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g ) 1100 CYG_TRACE7( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g )
1101 #define CYG_TRACE8B( _msg_, a,b,c,d,e,f,g,h ) \ 1101 #define CYG_TRACE8B( _msg_, a,b,c,d,e,f,g,h ) \
1102 CYG_TRACE8( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g,h ) 1102 CYG_TRACE8( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g,h )
1103 1103
1104 // long hex versions 1104 // long hex versions
1105 1105
1106 #define CYG_TRACE1X( _bool_, a ) \ 1106 #define CYG_TRACE1X( _bool_, a ) \
1107 CYG_TRACE1( _bool_, "%08x", a ) 1107 CYG_TRACE1( _bool_, "%08x", a )
1108 #define CYG_TRACE2X( _bool_, a,b ) \ 1108 #define CYG_TRACE2X( _bool_, a,b ) \
1109 CYG_TRACE2( _bool_, "%08x %08x", a,b ) 1109 CYG_TRACE2( _bool_, "%08x %08x", a,b )
1110 #define CYG_TRACE3X( _bool_, a,b,c ) \ 1110 #define CYG_TRACE3X( _bool_, a,b,c ) \
1111 CYG_TRACE3( _bool_, "%08x %08x %08x", a,b,c ) 1111 CYG_TRACE3( _bool_, "%08x %08x %08x", a,b,c )
1112 #define CYG_TRACE4X( _bool_, a,b,c,d ) \ 1112 #define CYG_TRACE4X( _bool_, a,b,c,d ) \
1113 CYG_TRACE4( _bool_, "%08x %08x %08x %08x", a,b,c,d ) 1113 CYG_TRACE4( _bool_, "%08x %08x %08x %08x", a,b,c,d )
1114 #define CYG_TRACE5X( _bool_, a,b,c,d,e ) \ 1114 #define CYG_TRACE5X( _bool_, a,b,c,d,e ) \
1115 CYG_TRACE5( _bool_, "%08x %08x %08x %08x %08x", a,b,c,d,e ) 1115 CYG_TRACE5( _bool_, "%08x %08x %08x %08x %08x", a,b,c,d,e )
1116 #define CYG_TRACE6X( _bool_, a,b,c,d,e,f ) \ 1116 #define CYG_TRACE6X( _bool_, a,b,c,d,e,f ) \
1117 CYG_TRACE6( _bool_, "%08x %08x %08x %08x %08x %08x", \ 1117 CYG_TRACE6( _bool_, "%08x %08x %08x %08x %08x %08x", \
1118 a,b,c,d,e,f ) 1118 a,b,c,d,e,f )
1119 #define CYG_TRACE7X( _bool_, a,b,c,d,e,f,g ) \ 1119 #define CYG_TRACE7X( _bool_, a,b,c,d,e,f,g ) \
1120 CYG_TRACE7( _bool_, "%08x %08x %08x %08x %08x %08x %08x", \ 1120 CYG_TRACE7( _bool_, "%08x %08x %08x %08x %08x %08x %08x", \
1121 a,b,c,d,e,f,g ) 1121 a,b,c,d,e,f,g )
1122 #define CYG_TRACE8X( _bool_, a,b,c,d,e,f,g,h ) \ 1122 #define CYG_TRACE8X( _bool_, a,b,c,d,e,f,g,h ) \
1123 CYG_TRACE8( _bool_, "%08x %08x %08x %08x %08x %08x %08x %08x", \ 1123 CYG_TRACE8( _bool_, "%08x %08x %08x %08x %08x %08x %08x %08x", \
1124 a,b,c,d,e,f,g,h ) 1124 a,b,c,d,e,f,g,h )
1125 1125
1126 #define CYG_TRACE1XV( _bool_, a ) \ 1126 #define CYG_TRACE1XV( _bool_, a ) \
1127 CYG_TRACE1( _bool_, # a "=%08x ", a ) 1127 CYG_TRACE1( _bool_, # a "=%08x ", a )
1128 #define CYG_TRACE2XV( _bool_, a,b ) \ 1128 #define CYG_TRACE2XV( _bool_, a,b ) \
1129 CYG_TRACE2( _bool_, \ 1129 CYG_TRACE2( _bool_, \
1130 # a "=%08x " # b "=%08x " , a,b ) 1130 # a "=%08x " # b "=%08x " , a,b )
1131 #define CYG_TRACE3XV( _bool_, a,b,c ) \ 1131 #define CYG_TRACE3XV( _bool_, a,b,c ) \
1132 CYG_TRACE3( _bool_, \ 1132 CYG_TRACE3( _bool_, \
1133 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c ) 1133 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c )
1134 #define CYG_TRACE4XV( _bool_, a,b,c,d ) \ 1134 #define CYG_TRACE4XV( _bool_, a,b,c,d ) \
1135 CYG_TRACE4( _bool_, \ 1135 CYG_TRACE4( _bool_, \
1136 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1136 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1137 , a,b,c,d ) 1137 , a,b,c,d )
1138 #define CYG_TRACE5XV( _bool_, a,b,c,d,e ) \ 1138 #define CYG_TRACE5XV( _bool_, a,b,c,d,e ) \
1139 CYG_TRACE5( _bool_, \ 1139 CYG_TRACE5( _bool_, \
1140 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1140 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1141 # e "=%08x " \ 1141 # e "=%08x " \
1142 , a,b,c,d,e ) 1142 , a,b,c,d,e )
1143 #define CYG_TRACE6XV( _bool_, a,b,c,d,e,f ) \ 1143 #define CYG_TRACE6XV( _bool_, a,b,c,d,e,f ) \
1144 CYG_TRACE6( _bool_, \ 1144 CYG_TRACE6( _bool_, \
1145 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1145 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1146 # e "=%08x " # f "=%08x " \ 1146 # e "=%08x " # f "=%08x " \
1147 , a,b,c,d,e,f ) 1147 , a,b,c,d,e,f )
1148 #define CYG_TRACE7XV( _bool_, a,b,c,d,e,f,g ) \ 1148 #define CYG_TRACE7XV( _bool_, a,b,c,d,e,f,g ) \
1149 CYG_TRACE7( _bool_, \ 1149 CYG_TRACE7( _bool_, \
1150 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1150 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1151 # e "=%08x " # f "=%08x " # g "=%08x " \ 1151 # e "=%08x " # f "=%08x " # g "=%08x " \
1152 , a,b,c,d,e,f,g ) 1152 , a,b,c,d,e,f,g )
1153 #define CYG_TRACE8XV( _bool_, a,b,c,d,e,f,g,h ) \ 1153 #define CYG_TRACE8XV( _bool_, a,b,c,d,e,f,g,h ) \
1154 CYG_TRACE8( _bool_, \ 1154 CYG_TRACE8( _bool_, \
1155 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1155 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1156 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \ 1156 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \
1157 , a,b,c,d,e,f,g,h ) 1157 , a,b,c,d,e,f,g,h )
1158 1158
1159 #define CYG_TRACE1XB( a ) \ 1159 #define CYG_TRACE1XB( a ) \
1160 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%08x", a ) 1160 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%08x", a )
1161 #define CYG_TRACE2XB( a,b ) \ 1161 #define CYG_TRACE2XB( a,b ) \
1162 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%08x %08x", a,b ) 1162 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%08x %08x", a,b )
1163 #define CYG_TRACE3XB( a,b,c ) \ 1163 #define CYG_TRACE3XB( a,b,c ) \
1164 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%08x %08x %08x", a,b,c ) 1164 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%08x %08x %08x", a,b,c )
1165 #define CYG_TRACE4XB( a,b,c,d ) \ 1165 #define CYG_TRACE4XB( a,b,c,d ) \
1166 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x", a,b,c,d ) 1166 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x", a,b,c,d )
1167 #define CYG_TRACE5XB( a,b,c,d,e ) \ 1167 #define CYG_TRACE5XB( a,b,c,d,e ) \
1168 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x", a,b,c,d,e ) 1168 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x", a,b,c,d,e )
1169 #define CYG_TRACE6XB( a,b,c,d,e,f ) \ 1169 #define CYG_TRACE6XB( a,b,c,d,e,f ) \
1170 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x", \ 1170 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x", \
1171 a,b,c,d,e,f ) 1171 a,b,c,d,e,f )
1172 #define CYG_TRACE7XB( a,b,c,d,e,f,g ) \ 1172 #define CYG_TRACE7XB( a,b,c,d,e,f,g ) \
1173 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x %08x", \ 1173 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x %08x", \
1174 a,b,c,d,e,f,g ) 1174 a,b,c,d,e,f,g )
1175 #define CYG_TRACE8XB( a,b,c,d,e,f,g,h ) \ 1175 #define CYG_TRACE8XB( a,b,c,d,e,f,g,h ) \
1176 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x %08x %08x", \ 1176 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%08x %08x %08x %08x %08x %08x %08x %08x", \
1177 a,b,c,d,e,f,g,h ) 1177 a,b,c,d,e,f,g,h )
1178 1178
1179 #define CYG_TRACE1XVB( a ) \ 1179 #define CYG_TRACE1XVB( a ) \
1180 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%08x ", a ) 1180 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%08x ", a )
1181 #define CYG_TRACE2XVB( a,b ) \ 1181 #define CYG_TRACE2XVB( a,b ) \
1182 CYG_TRACE2( CYG_TRACE_USER_BOOL, \ 1182 CYG_TRACE2( CYG_TRACE_USER_BOOL, \
1183 # a "=%08x " # b "=%08x " , a,b ) 1183 # a "=%08x " # b "=%08x " , a,b )
1184 #define CYG_TRACE3XVB( a,b,c ) \ 1184 #define CYG_TRACE3XVB( a,b,c ) \
1185 CYG_TRACE3( CYG_TRACE_USER_BOOL, \ 1185 CYG_TRACE3( CYG_TRACE_USER_BOOL, \
1186 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c ) 1186 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c )
1187 #define CYG_TRACE4XVB( a,b,c,d ) \ 1187 #define CYG_TRACE4XVB( a,b,c,d ) \
1188 CYG_TRACE4( CYG_TRACE_USER_BOOL, \ 1188 CYG_TRACE4( CYG_TRACE_USER_BOOL, \
1189 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1189 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1190 , a,b,c,d ) 1190 , a,b,c,d )
1191 #define CYG_TRACE5XVB( a,b,c,d,e ) \ 1191 #define CYG_TRACE5XVB( a,b,c,d,e ) \
1192 CYG_TRACE5( CYG_TRACE_USER_BOOL, \ 1192 CYG_TRACE5( CYG_TRACE_USER_BOOL, \
1193 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1193 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1194 # e "=%08x " \ 1194 # e "=%08x " \
1195 , a,b,c,d,e ) 1195 , a,b,c,d,e )
1196 #define CYG_TRACE6XVB( a,b,c,d,e,f ) \ 1196 #define CYG_TRACE6XVB( a,b,c,d,e,f ) \
1197 CYG_TRACE6( CYG_TRACE_USER_BOOL, \ 1197 CYG_TRACE6( CYG_TRACE_USER_BOOL, \
1198 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1198 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1199 # e "=%08x " # f "=%08x " \ 1199 # e "=%08x " # f "=%08x " \
1200 , a,b,c,d,e,f ) 1200 , a,b,c,d,e,f )
1201 #define CYG_TRACE7XVB( a,b,c,d,e,f,g ) \ 1201 #define CYG_TRACE7XVB( a,b,c,d,e,f,g ) \
1202 CYG_TRACE7( CYG_TRACE_USER_BOOL, \ 1202 CYG_TRACE7( CYG_TRACE_USER_BOOL, \
1203 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1203 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1204 # e "=%08x " # f "=%08x " # g "=%08x " \ 1204 # e "=%08x " # f "=%08x " # g "=%08x " \
1205 , a,b,c,d,e,f,g ) 1205 , a,b,c,d,e,f,g )
1206 #define CYG_TRACE8XVB( a,b,c,d,e,f,g,h ) \ 1206 #define CYG_TRACE8XVB( a,b,c,d,e,f,g,h ) \
1207 CYG_TRACE8( CYG_TRACE_USER_BOOL, \ 1207 CYG_TRACE8( CYG_TRACE_USER_BOOL, \
1208 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1208 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1209 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \ 1209 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \
1210 , a,b,c,d,e,f,g,h ) 1210 , a,b,c,d,e,f,g,h )
1211 1211
1212 // decimal versions 1212 // decimal versions
1213 1213
1214 #define CYG_TRACE1D( _bool_, a ) \ 1214 #define CYG_TRACE1D( _bool_, a ) \
1215 CYG_TRACE1( _bool_, "%d", a ) 1215 CYG_TRACE1( _bool_, "%d", a )
1216 #define CYG_TRACE2D( _bool_, a,b ) \ 1216 #define CYG_TRACE2D( _bool_, a,b ) \
1217 CYG_TRACE2( _bool_, "%d %d", a,b ) 1217 CYG_TRACE2( _bool_, "%d %d", a,b )
1218 #define CYG_TRACE3D( _bool_, a,b,c ) \ 1218 #define CYG_TRACE3D( _bool_, a,b,c ) \
1219 CYG_TRACE3( _bool_, "%d %d %d", a,b,c ) 1219 CYG_TRACE3( _bool_, "%d %d %d", a,b,c )
1220 #define CYG_TRACE4D( _bool_, a,b,c,d ) \ 1220 #define CYG_TRACE4D( _bool_, a,b,c,d ) \
1221 CYG_TRACE4( _bool_, "%d %d %d %d", a,b,c,d ) 1221 CYG_TRACE4( _bool_, "%d %d %d %d", a,b,c,d )
1222 #define CYG_TRACE5D( _bool_, a,b,c,d,e ) \ 1222 #define CYG_TRACE5D( _bool_, a,b,c,d,e ) \
1223 CYG_TRACE5( _bool_, "%d %d %d %d %d", a,b,c,d,e ) 1223 CYG_TRACE5( _bool_, "%d %d %d %d %d", a,b,c,d,e )
1224 #define CYG_TRACE6D( _bool_, a,b,c,d,e,f ) \ 1224 #define CYG_TRACE6D( _bool_, a,b,c,d,e,f ) \
1225 CYG_TRACE6( _bool_, "%d %d %d %d %d %d", \ 1225 CYG_TRACE6( _bool_, "%d %d %d %d %d %d", \
1226 a,b,c,d,e,f ) 1226 a,b,c,d,e,f )
1227 #define CYG_TRACE7D( _bool_, a,b,c,d,e,f,g ) \ 1227 #define CYG_TRACE7D( _bool_, a,b,c,d,e,f,g ) \
1228 CYG_TRACE7( _bool_, "%d %d %d %d %d %d %d", \ 1228 CYG_TRACE7( _bool_, "%d %d %d %d %d %d %d", \
1229 a,b,c,d,e,f,g ) 1229 a,b,c,d,e,f,g )
1230 #define CYG_TRACE8D( _bool_, a,b,c,d,e,f,g,h ) \ 1230 #define CYG_TRACE8D( _bool_, a,b,c,d,e,f,g,h ) \
1231 CYG_TRACE8( _bool_, "%d %d %d %d %d %d %d %d", \ 1231 CYG_TRACE8( _bool_, "%d %d %d %d %d %d %d %d", \
1232 a,b,c,d,e,f,g,h ) 1232 a,b,c,d,e,f,g,h )
1233 1233
1234 #define CYG_TRACE1DV( _bool_, a ) \ 1234 #define CYG_TRACE1DV( _bool_, a ) \
1235 CYG_TRACE1( _bool_, # a "=%d ", a ) 1235 CYG_TRACE1( _bool_, # a "=%d ", a )
1236 #define CYG_TRACE2DV( _bool_, a,b ) \ 1236 #define CYG_TRACE2DV( _bool_, a,b ) \
1237 CYG_TRACE2( _bool_, \ 1237 CYG_TRACE2( _bool_, \
1238 # a "=%d " # b "=%d " , a,b ) 1238 # a "=%d " # b "=%d " , a,b )
1239 #define CYG_TRACE3DV( _bool_, a,b,c ) \ 1239 #define CYG_TRACE3DV( _bool_, a,b,c ) \
1240 CYG_TRACE3( _bool_, \ 1240 CYG_TRACE3( _bool_, \
1241 # a "=%d " # b "=%d " # c "=%d " , a,b,c ) 1241 # a "=%d " # b "=%d " # c "=%d " , a,b,c )
1242 #define CYG_TRACE4DV( _bool_, a,b,c,d ) \ 1242 #define CYG_TRACE4DV( _bool_, a,b,c,d ) \
1243 CYG_TRACE4( _bool_, \ 1243 CYG_TRACE4( _bool_, \
1244 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1244 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1245 , a,b,c,d ) 1245 , a,b,c,d )
1246 #define CYG_TRACE5DV( _bool_, a,b,c,d,e ) \ 1246 #define CYG_TRACE5DV( _bool_, a,b,c,d,e ) \
1247 CYG_TRACE5( _bool_, \ 1247 CYG_TRACE5( _bool_, \
1248 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1248 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1249 # e "=%d " \ 1249 # e "=%d " \
1250 , a,b,c,d,e ) 1250 , a,b,c,d,e )
1251 #define CYG_TRACE6DV( _bool_, a,b,c,d,e,f ) \ 1251 #define CYG_TRACE6DV( _bool_, a,b,c,d,e,f ) \
1252 CYG_TRACE6( _bool_, \ 1252 CYG_TRACE6( _bool_, \
1253 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1253 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1254 # e "=%d " # f "=%d " \ 1254 # e "=%d " # f "=%d " \
1255 , a,b,c,d,e,f ) 1255 , a,b,c,d,e,f )
1256 #define CYG_TRACE7DV( _bool_, a,b,c,d,e,f,g ) \ 1256 #define CYG_TRACE7DV( _bool_, a,b,c,d,e,f,g ) \
1257 CYG_TRACE7( _bool_, \ 1257 CYG_TRACE7( _bool_, \
1258 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1258 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1259 # e "=%d " # f "=%d " # g "=%d " \ 1259 # e "=%d " # f "=%d " # g "=%d " \
1260 , a,b,c,d,e,f,g ) 1260 , a,b,c,d,e,f,g )
1261 #define CYG_TRACE8DV( _bool_, a,b,c,d,e,f,g,h ) \ 1261 #define CYG_TRACE8DV( _bool_, a,b,c,d,e,f,g,h ) \
1262 CYG_TRACE8( _bool_, \ 1262 CYG_TRACE8( _bool_, \
1263 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1263 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1264 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \ 1264 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \
1265 , a,b,c,d,e,f,g,h ) 1265 , a,b,c,d,e,f,g,h )
1266 1266
1267 #define CYG_TRACE1DB( a ) \ 1267 #define CYG_TRACE1DB( a ) \
1268 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%d", a ) 1268 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%d", a )
1269 #define CYG_TRACE2DB( a,b ) \ 1269 #define CYG_TRACE2DB( a,b ) \
1270 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%d %d", a,b ) 1270 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%d %d", a,b )
1271 #define CYG_TRACE3DB( a,b,c ) \ 1271 #define CYG_TRACE3DB( a,b,c ) \
1272 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%d %d %d", a,b,c ) 1272 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%d %d %d", a,b,c )
1273 #define CYG_TRACE4DB( a,b,c,d ) \ 1273 #define CYG_TRACE4DB( a,b,c,d ) \
1274 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%d %d %d %d", a,b,c,d ) 1274 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%d %d %d %d", a,b,c,d )
1275 #define CYG_TRACE5DB( a,b,c,d,e ) \ 1275 #define CYG_TRACE5DB( a,b,c,d,e ) \
1276 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%d %d %d %d %d", a,b,c,d,e ) 1276 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%d %d %d %d %d", a,b,c,d,e )
1277 #define CYG_TRACE6DB( a,b,c,d,e,f ) \ 1277 #define CYG_TRACE6DB( a,b,c,d,e,f ) \
1278 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d", \ 1278 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d", \
1279 a,b,c,d,e,f ) 1279 a,b,c,d,e,f )
1280 #define CYG_TRACE7DB( a,b,c,d,e,f,g ) \ 1280 #define CYG_TRACE7DB( a,b,c,d,e,f,g ) \
1281 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d %d", \ 1281 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d %d", \
1282 a,b,c,d,e,f,g ) 1282 a,b,c,d,e,f,g )
1283 #define CYG_TRACE8DB( a,b,c,d,e,f,g,h ) \ 1283 #define CYG_TRACE8DB( a,b,c,d,e,f,g,h ) \
1284 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d %d %d", \ 1284 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%d %d %d %d %d %d %d %d", \
1285 a,b,c,d,e,f,g,h ) 1285 a,b,c,d,e,f,g,h )
1286 1286
1287 #define CYG_TRACE1DVB( a ) \ 1287 #define CYG_TRACE1DVB( a ) \
1288 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%d ", a ) 1288 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%d ", a )
1289 #define CYG_TRACE2DVB( a,b ) \ 1289 #define CYG_TRACE2DVB( a,b ) \
1290 CYG_TRACE2( CYG_TRACE_USER_BOOL, \ 1290 CYG_TRACE2( CYG_TRACE_USER_BOOL, \
1291 # a "=%d " # b "=%d " , a,b ) 1291 # a "=%d " # b "=%d " , a,b )
1292 #define CYG_TRACE3DVB( a,b,c ) \ 1292 #define CYG_TRACE3DVB( a,b,c ) \
1293 CYG_TRACE3( CYG_TRACE_USER_BOOL, \ 1293 CYG_TRACE3( CYG_TRACE_USER_BOOL, \
1294 # a "=%d " # b "=%d " # c "=%d " , a,b,c ) 1294 # a "=%d " # b "=%d " # c "=%d " , a,b,c )
1295 #define CYG_TRACE4DVB( a,b,c,d ) \ 1295 #define CYG_TRACE4DVB( a,b,c,d ) \
1296 CYG_TRACE4( CYG_TRACE_USER_BOOL, \ 1296 CYG_TRACE4( CYG_TRACE_USER_BOOL, \
1297 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1297 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1298 , a,b,c,d ) 1298 , a,b,c,d )
1299 #define CYG_TRACE5DVB( a,b,c,d,e ) \ 1299 #define CYG_TRACE5DVB( a,b,c,d,e ) \
1300 CYG_TRACE5( CYG_TRACE_USER_BOOL, \ 1300 CYG_TRACE5( CYG_TRACE_USER_BOOL, \
1301 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1301 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1302 # e "=%d " \ 1302 # e "=%d " \
1303 , a,b,c,d,e ) 1303 , a,b,c,d,e )
1304 #define CYG_TRACE6DVB( a,b,c,d,e,f ) \ 1304 #define CYG_TRACE6DVB( a,b,c,d,e,f ) \
1305 CYG_TRACE6( CYG_TRACE_USER_BOOL, \ 1305 CYG_TRACE6( CYG_TRACE_USER_BOOL, \
1306 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1306 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1307 # e "=%d " # f "=%d " \ 1307 # e "=%d " # f "=%d " \
1308 , a,b,c,d,e,f ) 1308 , a,b,c,d,e,f )
1309 #define CYG_TRACE7DVB( a,b,c,d,e,f,g ) \ 1309 #define CYG_TRACE7DVB( a,b,c,d,e,f,g ) \
1310 CYG_TRACE7( CYG_TRACE_USER_BOOL, \ 1310 CYG_TRACE7( CYG_TRACE_USER_BOOL, \
1311 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1311 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1312 # e "=%d " # f "=%d " # g "=%d " \ 1312 # e "=%d " # f "=%d " # g "=%d " \
1313 , a,b,c,d,e,f,g ) 1313 , a,b,c,d,e,f,g )
1314 #define CYG_TRACE8DVB( a,b,c,d,e,f,g,h ) \ 1314 #define CYG_TRACE8DVB( a,b,c,d,e,f,g,h ) \
1315 CYG_TRACE8( CYG_TRACE_USER_BOOL, \ 1315 CYG_TRACE8( CYG_TRACE_USER_BOOL, \
1316 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1316 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1317 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \ 1317 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \
1318 , a,b,c,d,e,f,g,h ) 1318 , a,b,c,d,e,f,g,h )
1319 1319
1320 // short hex versions 1320 // short hex versions
1321 1321
1322 #define CYG_TRACE1Y( _bool_, a ) \ 1322 #define CYG_TRACE1Y( _bool_, a ) \
1323 CYG_TRACE1( _bool_, "%x", a ) 1323 CYG_TRACE1( _bool_, "%x", a )
1324 #define CYG_TRACE2Y( _bool_, a,b ) \ 1324 #define CYG_TRACE2Y( _bool_, a,b ) \
1325 CYG_TRACE2( _bool_, "%x %x", a,b ) 1325 CYG_TRACE2( _bool_, "%x %x", a,b )
1326 #define CYG_TRACE3Y( _bool_, a,b,c ) \ 1326 #define CYG_TRACE3Y( _bool_, a,b,c ) \
1327 CYG_TRACE3( _bool_, "%x %x %x", a,b,c ) 1327 CYG_TRACE3( _bool_, "%x %x %x", a,b,c )
1328 #define CYG_TRACE4Y( _bool_, a,b,c,d ) \ 1328 #define CYG_TRACE4Y( _bool_, a,b,c,d ) \
1329 CYG_TRACE4( _bool_, "%x %x %x %x", a,b,c,d ) 1329 CYG_TRACE4( _bool_, "%x %x %x %x", a,b,c,d )
1330 #define CYG_TRACE5Y( _bool_, a,b,c,d,e ) \ 1330 #define CYG_TRACE5Y( _bool_, a,b,c,d,e ) \
1331 CYG_TRACE5( _bool_, "%x %x %x %x %x", a,b,c,d,e ) 1331 CYG_TRACE5( _bool_, "%x %x %x %x %x", a,b,c,d,e )
1332 #define CYG_TRACE6Y( _bool_, a,b,c,d,e,f ) \ 1332 #define CYG_TRACE6Y( _bool_, a,b,c,d,e,f ) \
1333 CYG_TRACE6( _bool_, "%x %x %x %x %x %x", \ 1333 CYG_TRACE6( _bool_, "%x %x %x %x %x %x", \
1334 a,b,c,d,e,f ) 1334 a,b,c,d,e,f )
1335 #define CYG_TRACE7Y( _bool_, a,b,c,d,e,f,g ) \ 1335 #define CYG_TRACE7Y( _bool_, a,b,c,d,e,f,g ) \
1336 CYG_TRACE7( _bool_, "%x %x %x %x %x %x %x", \ 1336 CYG_TRACE7( _bool_, "%x %x %x %x %x %x %x", \
1337 a,b,c,d,e,f,g ) 1337 a,b,c,d,e,f,g )
1338 #define CYG_TRACE8Y( _bool_, a,b,c,d,e,f,g,h ) \ 1338 #define CYG_TRACE8Y( _bool_, a,b,c,d,e,f,g,h ) \
1339 CYG_TRACE8( _bool_, "%x %x %x %x %x %x %x %x", \ 1339 CYG_TRACE8( _bool_, "%x %x %x %x %x %x %x %x", \
1340 a,b,c,d,e,f,g,h ) 1340 a,b,c,d,e,f,g,h )
1341 1341
1342 #define CYG_TRACE1YV( _bool_, a ) \ 1342 #define CYG_TRACE1YV( _bool_, a ) \
1343 CYG_TRACE1( _bool_, # a "=%x ", a ) 1343 CYG_TRACE1( _bool_, # a "=%x ", a )
1344 #define CYG_TRACE2YV( _bool_, a,b ) \ 1344 #define CYG_TRACE2YV( _bool_, a,b ) \
1345 CYG_TRACE2( _bool_, \ 1345 CYG_TRACE2( _bool_, \
1346 # a "=%x " # b "=%x " , a,b ) 1346 # a "=%x " # b "=%x " , a,b )
1347 #define CYG_TRACE3YV( _bool_, a,b,c ) \ 1347 #define CYG_TRACE3YV( _bool_, a,b,c ) \
1348 CYG_TRACE3( _bool_, \ 1348 CYG_TRACE3( _bool_, \
1349 # a "=%x " # b "=%x " # c "=%x " , a,b,c ) 1349 # a "=%x " # b "=%x " # c "=%x " , a,b,c )
1350 #define CYG_TRACE4YV( _bool_, a,b,c,d ) \ 1350 #define CYG_TRACE4YV( _bool_, a,b,c,d ) \
1351 CYG_TRACE4( _bool_, \ 1351 CYG_TRACE4( _bool_, \
1352 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1352 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1353 , a,b,c,d ) 1353 , a,b,c,d )
1354 #define CYG_TRACE5YV( _bool_, a,b,c,d,e ) \ 1354 #define CYG_TRACE5YV( _bool_, a,b,c,d,e ) \
1355 CYG_TRACE5( _bool_, \ 1355 CYG_TRACE5( _bool_, \
1356 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1356 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1357 # e "=%x " \ 1357 # e "=%x " \
1358 , a,b,c,d,e ) 1358 , a,b,c,d,e )
1359 #define CYG_TRACE6YV( _bool_, a,b,c,d,e,f ) \ 1359 #define CYG_TRACE6YV( _bool_, a,b,c,d,e,f ) \
1360 CYG_TRACE6( _bool_, \ 1360 CYG_TRACE6( _bool_, \
1361 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1361 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1362 # e "=%x " # f "=%x " \ 1362 # e "=%x " # f "=%x " \
1363 , a,b,c,d,e,f ) 1363 , a,b,c,d,e,f )
1364 #define CYG_TRACE7YV( _bool_, a,b,c,d,e,f,g ) \ 1364 #define CYG_TRACE7YV( _bool_, a,b,c,d,e,f,g ) \
1365 CYG_TRACE7( _bool_, \ 1365 CYG_TRACE7( _bool_, \
1366 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1366 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1367 # e "=%x " # f "=%x " # g "=%x " \ 1367 # e "=%x " # f "=%x " # g "=%x " \
1368 , a,b,c,d,e,f,g ) 1368 , a,b,c,d,e,f,g )
1369 #define CYG_TRACE8YV( _bool_, a,b,c,d,e,f,g,h ) \ 1369 #define CYG_TRACE8YV( _bool_, a,b,c,d,e,f,g,h ) \
1370 CYG_TRACE8( _bool_, \ 1370 CYG_TRACE8( _bool_, \
1371 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1371 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1372 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \ 1372 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \
1373 , a,b,c,d,e,f,g,h ) 1373 , a,b,c,d,e,f,g,h )
1374 1374
1375 #define CYG_TRACE1YB( a ) \ 1375 #define CYG_TRACE1YB( a ) \
1376 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%x", a ) 1376 CYG_TRACE1( CYG_TRACE_USER_BOOL, "%x", a )
1377 #define CYG_TRACE2YB( a,b ) \ 1377 #define CYG_TRACE2YB( a,b ) \
1378 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%x %x", a,b ) 1378 CYG_TRACE2( CYG_TRACE_USER_BOOL, "%x %x", a,b )
1379 #define CYG_TRACE3YB( a,b,c ) \ 1379 #define CYG_TRACE3YB( a,b,c ) \
1380 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%x %x %x", a,b,c ) 1380 CYG_TRACE3( CYG_TRACE_USER_BOOL, "%x %x %x", a,b,c )
1381 #define CYG_TRACE4YB( a,b,c,d ) \ 1381 #define CYG_TRACE4YB( a,b,c,d ) \
1382 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%x %x %x %x", a,b,c,d ) 1382 CYG_TRACE4( CYG_TRACE_USER_BOOL, "%x %x %x %x", a,b,c,d )
1383 #define CYG_TRACE5YB( a,b,c,d,e ) \ 1383 #define CYG_TRACE5YB( a,b,c,d,e ) \
1384 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%x %x %x %x %x", a,b,c,d,e ) 1384 CYG_TRACE5( CYG_TRACE_USER_BOOL, "%x %x %x %x %x", a,b,c,d,e )
1385 #define CYG_TRACE6YB( a,b,c,d,e,f ) \ 1385 #define CYG_TRACE6YB( a,b,c,d,e,f ) \
1386 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x", \ 1386 CYG_TRACE6( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x", \
1387 a,b,c,d,e,f ) 1387 a,b,c,d,e,f )
1388 #define CYG_TRACE7YB( a,b,c,d,e,f,g ) \ 1388 #define CYG_TRACE7YB( a,b,c,d,e,f,g ) \
1389 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x %x", \ 1389 CYG_TRACE7( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x %x", \
1390 a,b,c,d,e,f,g ) 1390 a,b,c,d,e,f,g )
1391 #define CYG_TRACE8YB( a,b,c,d,e,f,g,h ) \ 1391 #define CYG_TRACE8YB( a,b,c,d,e,f,g,h ) \
1392 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x %x %x", \ 1392 CYG_TRACE8( CYG_TRACE_USER_BOOL, "%x %x %x %x %x %x %x %x", \
1393 a,b,c,d,e,f,g,h ) 1393 a,b,c,d,e,f,g,h )
1394 1394
1395 #define CYG_TRACE1YVB( a ) \ 1395 #define CYG_TRACE1YVB( a ) \
1396 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%x ", a ) 1396 CYG_TRACE1( CYG_TRACE_USER_BOOL, # a "=%x ", a )
1397 #define CYG_TRACE2YVB( a,b ) \ 1397 #define CYG_TRACE2YVB( a,b ) \
1398 CYG_TRACE2( CYG_TRACE_USER_BOOL, \ 1398 CYG_TRACE2( CYG_TRACE_USER_BOOL, \
1399 # a "=%x " # b "=%x " , a,b ) 1399 # a "=%x " # b "=%x " , a,b )
1400 #define CYG_TRACE3YVB( a,b,c ) \ 1400 #define CYG_TRACE3YVB( a,b,c ) \
1401 CYG_TRACE3( CYG_TRACE_USER_BOOL, \ 1401 CYG_TRACE3( CYG_TRACE_USER_BOOL, \
1402 # a "=%x " # b "=%x " # c "=%x " , a,b,c ) 1402 # a "=%x " # b "=%x " # c "=%x " , a,b,c )
1403 #define CYG_TRACE4YVB( a,b,c,d ) \ 1403 #define CYG_TRACE4YVB( a,b,c,d ) \
1404 CYG_TRACE4( CYG_TRACE_USER_BOOL, \ 1404 CYG_TRACE4( CYG_TRACE_USER_BOOL, \
1405 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1405 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1406 , a,b,c,d ) 1406 , a,b,c,d )
1407 #define CYG_TRACE5YVB( a,b,c,d,e ) \ 1407 #define CYG_TRACE5YVB( a,b,c,d,e ) \
1408 CYG_TRACE5( CYG_TRACE_USER_BOOL, \ 1408 CYG_TRACE5( CYG_TRACE_USER_BOOL, \
1409 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1409 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1410 # e "=%x " \ 1410 # e "=%x " \
1411 , a,b,c,d,e ) 1411 , a,b,c,d,e )
1412 #define CYG_TRACE6YVB( a,b,c,d,e,f ) \ 1412 #define CYG_TRACE6YVB( a,b,c,d,e,f ) \
1413 CYG_TRACE6( CYG_TRACE_USER_BOOL, \ 1413 CYG_TRACE6( CYG_TRACE_USER_BOOL, \
1414 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1414 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1415 # e "=%x " # f "=%x " \ 1415 # e "=%x " # f "=%x " \
1416 , a,b,c,d,e,f ) 1416 , a,b,c,d,e,f )
1417 #define CYG_TRACE7YVB( a,b,c,d,e,f,g ) \ 1417 #define CYG_TRACE7YVB( a,b,c,d,e,f,g ) \
1418 CYG_TRACE7( CYG_TRACE_USER_BOOL, \ 1418 CYG_TRACE7( CYG_TRACE_USER_BOOL, \
1419 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1419 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1420 # e "=%x " # f "=%x " # g "=%x " \ 1420 # e "=%x " # f "=%x " # g "=%x " \
1421 , a,b,c,d,e,f,g ) 1421 , a,b,c,d,e,f,g )
1422 #define CYG_TRACE8YVB( a,b,c,d,e,f,g,h ) \ 1422 #define CYG_TRACE8YVB( a,b,c,d,e,f,g,h ) \
1423 CYG_TRACE8( CYG_TRACE_USER_BOOL, \ 1423 CYG_TRACE8( CYG_TRACE_USER_BOOL, \
1424 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1424 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1425 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \ 1425 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \
1426 , a,b,c,d,e,f,g,h ) 1426 , a,b,c,d,e,f,g,h )
1427 1427
1428 // ------------------------------------------------------------------------- 1428 // -------------------------------------------------------------------------
1438 // V: "<var> = %..." is used, by stringifying the argument 1438 // V: "<var> = %..." is used, by stringifying the argument
1439 1439
1440 // long hex versions 1440 // long hex versions
1441 1441
1442 #define CYG_REPORT_FUNCARG1X( a ) \ 1442 #define CYG_REPORT_FUNCARG1X( a ) \
1443 CYG_REPORT_FUNCARG1( "%08x", a ) 1443 CYG_REPORT_FUNCARG1( "%08x", a )
1444 #define CYG_REPORT_FUNCARG2X( a,b ) \ 1444 #define CYG_REPORT_FUNCARG2X( a,b ) \
1445 CYG_REPORT_FUNCARG2( "%08x %08x", a,b ) 1445 CYG_REPORT_FUNCARG2( "%08x %08x", a,b )
1446 #define CYG_REPORT_FUNCARG3X( a,b,c ) \ 1446 #define CYG_REPORT_FUNCARG3X( a,b,c ) \
1447 CYG_REPORT_FUNCARG3( "%08x %08x %08x", a,b,c ) 1447 CYG_REPORT_FUNCARG3( "%08x %08x %08x", a,b,c )
1448 #define CYG_REPORT_FUNCARG4X( a,b,c,d ) \ 1448 #define CYG_REPORT_FUNCARG4X( a,b,c,d ) \
1449 CYG_REPORT_FUNCARG4( "%08x %08x %08x %08x", a,b,c,d ) 1449 CYG_REPORT_FUNCARG4( "%08x %08x %08x %08x", a,b,c,d )
1450 #define CYG_REPORT_FUNCARG5X( a,b,c,d,e ) \ 1450 #define CYG_REPORT_FUNCARG5X( a,b,c,d,e ) \
1451 CYG_REPORT_FUNCARG5( "%08x %08x %08x %08x %08x", a,b,c,d,e ) 1451 CYG_REPORT_FUNCARG5( "%08x %08x %08x %08x %08x", a,b,c,d,e )
1452 #define CYG_REPORT_FUNCARG6X( a,b,c,d,e,f ) \ 1452 #define CYG_REPORT_FUNCARG6X( a,b,c,d,e,f ) \
1453 CYG_REPORT_FUNCARG6( "%08x %08x %08x %08x %08x %08x", \ 1453 CYG_REPORT_FUNCARG6( "%08x %08x %08x %08x %08x %08x", \
1454 a,b,c,d,e,f ) 1454 a,b,c,d,e,f )
1455 #define CYG_REPORT_FUNCARG7X( a,b,c,d,e,f,g ) \ 1455 #define CYG_REPORT_FUNCARG7X( a,b,c,d,e,f,g ) \
1456 CYG_REPORT_FUNCARG7( "%08x %08x %08x %08x %08x %08x %08x", \ 1456 CYG_REPORT_FUNCARG7( "%08x %08x %08x %08x %08x %08x %08x", \
1457 a,b,c,d,e,f,g ) 1457 a,b,c,d,e,f,g )
1458 #define CYG_REPORT_FUNCARG8X( a,b,c,d,e,f,g,h ) \ 1458 #define CYG_REPORT_FUNCARG8X( a,b,c,d,e,f,g,h ) \
1459 CYG_REPORT_FUNCARG8( "%08x %08x %08x %08x %08x %08x %08x %08x", \ 1459 CYG_REPORT_FUNCARG8( "%08x %08x %08x %08x %08x %08x %08x %08x", \
1460 a,b,c,d,e,f,g,h ) 1460 a,b,c,d,e,f,g,h )
1461 1461
1462 #define CYG_REPORT_FUNCARG1XV( a ) \ 1462 #define CYG_REPORT_FUNCARG1XV( a ) \
1463 CYG_REPORT_FUNCARG1( # a "=%08x ", a ) 1463 CYG_REPORT_FUNCARG1( # a "=%08x ", a )
1464 #define CYG_REPORT_FUNCARG2XV( a,b ) \ 1464 #define CYG_REPORT_FUNCARG2XV( a,b ) \
1465 CYG_REPORT_FUNCARG2( \ 1465 CYG_REPORT_FUNCARG2( \
1466 # a "=%08x " # b "=%08x " , a,b ) 1466 # a "=%08x " # b "=%08x " , a,b )
1467 #define CYG_REPORT_FUNCARG3XV( a,b,c ) \ 1467 #define CYG_REPORT_FUNCARG3XV( a,b,c ) \
1468 CYG_REPORT_FUNCARG3( \ 1468 CYG_REPORT_FUNCARG3( \
1469 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c ) 1469 # a "=%08x " # b "=%08x " # c "=%08x " , a,b,c )
1470 #define CYG_REPORT_FUNCARG4XV( a,b,c,d ) \ 1470 #define CYG_REPORT_FUNCARG4XV( a,b,c,d ) \
1471 CYG_REPORT_FUNCARG4( \ 1471 CYG_REPORT_FUNCARG4( \
1472 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1472 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1473 , a,b,c,d ) 1473 , a,b,c,d )
1474 #define CYG_REPORT_FUNCARG5XV( a,b,c,d,e ) \ 1474 #define CYG_REPORT_FUNCARG5XV( a,b,c,d,e ) \
1475 CYG_REPORT_FUNCARG5( \ 1475 CYG_REPORT_FUNCARG5( \
1476 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1476 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1477 # e "=%08x " \ 1477 # e "=%08x " \
1478 , a,b,c,d,e ) 1478 , a,b,c,d,e )
1479 #define CYG_REPORT_FUNCARG6XV( a,b,c,d,e,f ) \ 1479 #define CYG_REPORT_FUNCARG6XV( a,b,c,d,e,f ) \
1480 CYG_REPORT_FUNCARG6( \ 1480 CYG_REPORT_FUNCARG6( \
1481 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1481 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1482 # e "=%08x " # f "=%08x " \ 1482 # e "=%08x " # f "=%08x " \
1483 , a,b,c,d,e,f ) 1483 , a,b,c,d,e,f )
1484 #define CYG_REPORT_FUNCARG7XV( a,b,c,d,e,f,g ) \ 1484 #define CYG_REPORT_FUNCARG7XV( a,b,c,d,e,f,g ) \
1485 CYG_REPORT_FUNCARG7( \ 1485 CYG_REPORT_FUNCARG7( \
1486 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1486 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1487 # e "=%08x " # f "=%08x " # g "=%08x " \ 1487 # e "=%08x " # f "=%08x " # g "=%08x " \
1488 , a,b,c,d,e,f,g ) 1488 , a,b,c,d,e,f,g )
1489 #define CYG_REPORT_FUNCARG8XV( a,b,c,d,e,f,g,h ) \ 1489 #define CYG_REPORT_FUNCARG8XV( a,b,c,d,e,f,g,h ) \
1490 CYG_REPORT_FUNCARG8( \ 1490 CYG_REPORT_FUNCARG8( \
1491 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \ 1491 # a "=%08x " # b "=%08x " # c "=%08x " # d "=%08x " \
1492 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \ 1492 # e "=%08x " # f "=%08x " # g "=%08x " # h "=%08x " \
1493 , a,b,c,d,e,f,g,h ) 1493 , a,b,c,d,e,f,g,h )
1494 1494
1495 // decimal versions 1495 // decimal versions
1496 1496
1497 1497
1498 #define CYG_REPORT_FUNCARG1D( a ) \ 1498 #define CYG_REPORT_FUNCARG1D( a ) \
1499 CYG_REPORT_FUNCARG1( "%d", a ) 1499 CYG_REPORT_FUNCARG1( "%d", a )
1500 #define CYG_REPORT_FUNCARG2D( a,b ) \ 1500 #define CYG_REPORT_FUNCARG2D( a,b ) \
1501 CYG_REPORT_FUNCARG2( "%d %d", a,b ) 1501 CYG_REPORT_FUNCARG2( "%d %d", a,b )
1502 #define CYG_REPORT_FUNCARG3D( a,b,c ) \ 1502 #define CYG_REPORT_FUNCARG3D( a,b,c ) \
1503 CYG_REPORT_FUNCARG3( "%d %d %d", a,b,c ) 1503 CYG_REPORT_FUNCARG3( "%d %d %d", a,b,c )
1504 #define CYG_REPORT_FUNCARG4D( a,b,c,d ) \ 1504 #define CYG_REPORT_FUNCARG4D( a,b,c,d ) \
1505 CYG_REPORT_FUNCARG4( "%d %d %d %d", a,b,c,d ) 1505 CYG_REPORT_FUNCARG4( "%d %d %d %d", a,b,c,d )
1506 #define CYG_REPORT_FUNCARG5D( a,b,c,d,e ) \ 1506 #define CYG_REPORT_FUNCARG5D( a,b,c,d,e ) \
1507 CYG_REPORT_FUNCARG5( "%d %d %d %d %d", a,b,c,d,e ) 1507 CYG_REPORT_FUNCARG5( "%d %d %d %d %d", a,b,c,d,e )
1508 #define CYG_REPORT_FUNCARG6D( a,b,c,d,e,f ) \ 1508 #define CYG_REPORT_FUNCARG6D( a,b,c,d,e,f ) \
1509 CYG_REPORT_FUNCARG6( "%d %d %d %d %d %d", \ 1509 CYG_REPORT_FUNCARG6( "%d %d %d %d %d %d", \
1510 a,b,c,d,e,f ) 1510 a,b,c,d,e,f )
1511 #define CYG_REPORT_FUNCARG7D( a,b,c,d,e,f,g ) \ 1511 #define CYG_REPORT_FUNCARG7D( a,b,c,d,e,f,g ) \
1512 CYG_REPORT_FUNCARG7( "%d %d %d %d %d %d %d", \ 1512 CYG_REPORT_FUNCARG7( "%d %d %d %d %d %d %d", \
1513 a,b,c,d,e,f,g ) 1513 a,b,c,d,e,f,g )
1514 #define CYG_REPORT_FUNCARG8D( a,b,c,d,e,f,g,h ) \ 1514 #define CYG_REPORT_FUNCARG8D( a,b,c,d,e,f,g,h ) \
1515 CYG_REPORT_FUNCARG8( "%d %d %d %d %d %d %d %d", \ 1515 CYG_REPORT_FUNCARG8( "%d %d %d %d %d %d %d %d", \
1516 a,b,c,d,e,f,g,h ) 1516 a,b,c,d,e,f,g,h )
1517 1517
1518 #define CYG_REPORT_FUNCARG1DV( a ) \ 1518 #define CYG_REPORT_FUNCARG1DV( a ) \
1519 CYG_REPORT_FUNCARG1( # a "=%d ", a ) 1519 CYG_REPORT_FUNCARG1( # a "=%d ", a )
1520 #define CYG_REPORT_FUNCARG2DV( a,b ) \ 1520 #define CYG_REPORT_FUNCARG2DV( a,b ) \
1521 CYG_REPORT_FUNCARG2( \ 1521 CYG_REPORT_FUNCARG2( \
1522 # a "=%d " # b "=%d " , a,b ) 1522 # a "=%d " # b "=%d " , a,b )
1523 #define CYG_REPORT_FUNCARG3DV( a,b,c ) \ 1523 #define CYG_REPORT_FUNCARG3DV( a,b,c ) \
1524 CYG_REPORT_FUNCARG3( \ 1524 CYG_REPORT_FUNCARG3( \
1525 # a "=%d " # b "=%d " # c "=%d " , a,b,c ) 1525 # a "=%d " # b "=%d " # c "=%d " , a,b,c )
1526 #define CYG_REPORT_FUNCARG4DV( a,b,c,d ) \ 1526 #define CYG_REPORT_FUNCARG4DV( a,b,c,d ) \
1527 CYG_REPORT_FUNCARG4( \ 1527 CYG_REPORT_FUNCARG4( \
1528 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1528 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1529 , a,b,c,d ) 1529 , a,b,c,d )
1530 #define CYG_REPORT_FUNCARG5DV( a,b,c,d,e ) \ 1530 #define CYG_REPORT_FUNCARG5DV( a,b,c,d,e ) \
1531 CYG_REPORT_FUNCARG5( \ 1531 CYG_REPORT_FUNCARG5( \
1532 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1532 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1533 # e "=%d " \ 1533 # e "=%d " \
1534 , a,b,c,d,e ) 1534 , a,b,c,d,e )
1535 #define CYG_REPORT_FUNCARG6DV( a,b,c,d,e,f ) \ 1535 #define CYG_REPORT_FUNCARG6DV( a,b,c,d,e,f ) \
1536 CYG_REPORT_FUNCARG6( \ 1536 CYG_REPORT_FUNCARG6( \
1537 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1537 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1538 # e "=%d " # f "=%d " \ 1538 # e "=%d " # f "=%d " \
1539 , a,b,c,d,e,f ) 1539 , a,b,c,d,e,f )
1540 #define CYG_REPORT_FUNCARG7DV( a,b,c,d,e,f,g ) \ 1540 #define CYG_REPORT_FUNCARG7DV( a,b,c,d,e,f,g ) \
1541 CYG_REPORT_FUNCARG7( \ 1541 CYG_REPORT_FUNCARG7( \
1542 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1542 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1543 # e "=%d " # f "=%d " # g "=%d " \ 1543 # e "=%d " # f "=%d " # g "=%d " \
1544 , a,b,c,d,e,f,g ) 1544 , a,b,c,d,e,f,g )
1545 #define CYG_REPORT_FUNCARG8DV( a,b,c,d,e,f,g,h ) \ 1545 #define CYG_REPORT_FUNCARG8DV( a,b,c,d,e,f,g,h ) \
1546 CYG_REPORT_FUNCARG8( \ 1546 CYG_REPORT_FUNCARG8( \
1547 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \ 1547 # a "=%d " # b "=%d " # c "=%d " # d "=%d " \
1548 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \ 1548 # e "=%d " # f "=%d " # g "=%d " # h "=%d " \
1549 , a,b,c,d,e,f,g,h ) 1549 , a,b,c,d,e,f,g,h )
1550 1550
1551 // short hex versions 1551 // short hex versions
1552 1552
1553 #define CYG_REPORT_FUNCARG1Y( a ) \ 1553 #define CYG_REPORT_FUNCARG1Y( a ) \
1554 CYG_REPORT_FUNCARG1( "%x", a ) 1554 CYG_REPORT_FUNCARG1( "%x", a )
1555 #define CYG_REPORT_FUNCARG2Y( a,b ) \ 1555 #define CYG_REPORT_FUNCARG2Y( a,b ) \
1556 CYG_REPORT_FUNCARG2( "%x %x", a,b ) 1556 CYG_REPORT_FUNCARG2( "%x %x", a,b )
1557 #define CYG_REPORT_FUNCARG3Y( a,b,c ) \ 1557 #define CYG_REPORT_FUNCARG3Y( a,b,c ) \
1558 CYG_REPORT_FUNCARG3( "%x %x %x", a,b,c ) 1558 CYG_REPORT_FUNCARG3( "%x %x %x", a,b,c )
1559 #define CYG_REPORT_FUNCARG4Y( a,b,c,d ) \ 1559 #define CYG_REPORT_FUNCARG4Y( a,b,c,d ) \
1560 CYG_REPORT_FUNCARG4( "%x %x %x %x", a,b,c,d ) 1560 CYG_REPORT_FUNCARG4( "%x %x %x %x", a,b,c,d )
1561 #define CYG_REPORT_FUNCARG5Y( a,b,c,d,e ) \ 1561 #define CYG_REPORT_FUNCARG5Y( a,b,c,d,e ) \
1562 CYG_REPORT_FUNCARG5( "%x %x %x %x %x", a,b,c,d,e ) 1562 CYG_REPORT_FUNCARG5( "%x %x %x %x %x", a,b,c,d,e )
1563 #define CYG_REPORT_FUNCARG6Y( a,b,c,d,e,f ) \ 1563 #define CYG_REPORT_FUNCARG6Y( a,b,c,d,e,f ) \
1564 CYG_REPORT_FUNCARG6( "%x %x %x %x %x %x", \ 1564 CYG_REPORT_FUNCARG6( "%x %x %x %x %x %x", \
1565 a,b,c,d,e,f ) 1565 a,b,c,d,e,f )
1566 #define CYG_REPORT_FUNCARG7Y( a,b,c,d,e,f,g ) \ 1566 #define CYG_REPORT_FUNCARG7Y( a,b,c,d,e,f,g ) \
1567 CYG_REPORT_FUNCARG7( "%x %x %x %x %x %x %x", \ 1567 CYG_REPORT_FUNCARG7( "%x %x %x %x %x %x %x", \
1568 a,b,c,d,e,f,g ) 1568 a,b,c,d,e,f,g )
1569 #define CYG_REPORT_FUNCARG8Y( a,b,c,d,e,f,g,h ) \ 1569 #define CYG_REPORT_FUNCARG8Y( a,b,c,d,e,f,g,h ) \
1570 CYG_REPORT_FUNCARG8( "%x %x %x %x %x %x %x %x", \ 1570 CYG_REPORT_FUNCARG8( "%x %x %x %x %x %x %x %x", \
1571 a,b,c,d,e,f,g,h ) 1571 a,b,c,d,e,f,g,h )
1572 1572
1573 #define CYG_REPORT_FUNCARG1YV( a ) \ 1573 #define CYG_REPORT_FUNCARG1YV( a ) \
1574 CYG_REPORT_FUNCARG1( # a "=%x ", a ) 1574 CYG_REPORT_FUNCARG1( # a "=%x ", a )
1575 #define CYG_REPORT_FUNCARG2YV( a,b ) \ 1575 #define CYG_REPORT_FUNCARG2YV( a,b ) \
1576 CYG_REPORT_FUNCARG2( \ 1576 CYG_REPORT_FUNCARG2( \
1577 # a "=%x " # b "=%x " , a,b ) 1577 # a "=%x " # b "=%x " , a,b )
1578 #define CYG_REPORT_FUNCARG3YV( a,b,c ) \ 1578 #define CYG_REPORT_FUNCARG3YV( a,b,c ) \
1579 CYG_REPORT_FUNCARG3( \ 1579 CYG_REPORT_FUNCARG3( \
1580 # a "=%x " # b "=%x " # c "=%x " , a,b,c ) 1580 # a "=%x " # b "=%x " # c "=%x " , a,b,c )
1581 #define CYG_REPORT_FUNCARG4YV( a,b,c,d ) \ 1581 #define CYG_REPORT_FUNCARG4YV( a,b,c,d ) \
1582 CYG_REPORT_FUNCARG4( \ 1582 CYG_REPORT_FUNCARG4( \
1583 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1583 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1584 , a,b,c,d ) 1584 , a,b,c,d )
1585 #define CYG_REPORT_FUNCARG5YV( a,b,c,d,e ) \ 1585 #define CYG_REPORT_FUNCARG5YV( a,b,c,d,e ) \
1586 CYG_REPORT_FUNCARG5( \ 1586 CYG_REPORT_FUNCARG5( \
1587 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1587 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1588 # e "=%x " \ 1588 # e "=%x " \
1589 , a,b,c,d,e ) 1589 , a,b,c,d,e )
1590 #define CYG_REPORT_FUNCARG6YV( a,b,c,d,e,f ) \ 1590 #define CYG_REPORT_FUNCARG6YV( a,b,c,d,e,f ) \
1591 CYG_REPORT_FUNCARG6( \ 1591 CYG_REPORT_FUNCARG6( \
1592 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1592 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1593 # e "=%x " # f "=%x " \ 1593 # e "=%x " # f "=%x " \
1594 , a,b,c,d,e,f ) 1594 , a,b,c,d,e,f )
1595 #define CYG_REPORT_FUNCARG7YV( a,b,c,d,e,f,g ) \ 1595 #define CYG_REPORT_FUNCARG7YV( a,b,c,d,e,f,g ) \
1596 CYG_REPORT_FUNCARG7( \ 1596 CYG_REPORT_FUNCARG7( \
1597 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1597 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1598 # e "=%x " # f "=%x " # g "=%x " \ 1598 # e "=%x " # f "=%x " # g "=%x " \
1599 , a,b,c,d,e,f,g ) 1599 , a,b,c,d,e,f,g )
1600 #define CYG_REPORT_FUNCARG8YV( a,b,c,d,e,f,g,h ) \ 1600 #define CYG_REPORT_FUNCARG8YV( a,b,c,d,e,f,g,h ) \
1601 CYG_REPORT_FUNCARG8( \ 1601 CYG_REPORT_FUNCARG8( \
1602 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \ 1602 # a "=%x " # b "=%x " # c "=%x " # d "=%x " \
1603 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \ 1603 # e "=%x " # f "=%x " # g "=%x " # h "=%x " \
1604 , a,b,c,d,e,f,g,h ) 1604 , a,b,c,d,e,f,g,h )
1605 1605
1606 1606