]>
Commit | Line | Data |
---|---|---|
7e616b10 | 1 | #ifndef _ITRACE_H |
1a6944fd RR |
2 | # define _ITRACE_H |
3 | ||
7e616b10 | 4 | # ifdef DEBUG |
1a6944fd RR |
5 | # ifndef NO_TRACE |
6 | # define NO_TRACE | |
7 | # endif | |
8 | # endif | |
9 | ||
7e616b10 RR |
10 | # define TRACE_TYPE_APP2DM 1 |
11 | # define TRACE_TYPE_DM2DRV 2 | |
12 | # define TRACE_TYPE_DRV2DM 3 | |
1a6944fd | 13 | |
7e616b10 | 14 | # define TRACE_TYPE_RETURN 4 |
1a6944fd | 15 | |
7e616b10 | 16 | extern HPROC _iodbcdm_gettrproc(void FAR* stm, int procid, int type); |
1a6944fd RR |
17 | |
18 | # ifdef NO_TRACE | |
7e616b10 | 19 | # define TRACE_CALL( stm, trace_on, procid, plist ) |
1a6944fd RR |
20 | # else |
21 | # define TRACE_CALL( stm, trace_on, plist )\ | |
7e616b10 RR |
22 | {\ |
23 | if( trace_on)\ | |
24 | {\ | |
25 | HPROC hproc;\ | |
1a6944fd | 26 | \ |
7e616b10 | 27 | hproc = _iodbcdm_gettrproc(stm, procid, TRACE_TYPE_APP2DM);\ |
1a6944fd | 28 | \ |
7e616b10 RR |
29 | if( hproc )\ |
30 | hproc plist;\ | |
31 | }\ | |
32 | } | |
1a6944fd RR |
33 | # endif |
34 | ||
35 | # ifdef NO_TRACE | |
36 | # define TRACE_DM2DRV( stm, procid, plist ) | |
37 | # else | |
38 | # define TRACE_DM2DRV( stm, procid, plist )\ | |
7e616b10 RR |
39 | {\ |
40 | HPROC hproc;\ | |
1a6944fd | 41 | \ |
7e616b10 | 42 | hproc = _iodbcdm_gettrproc(stm, procid, TRACE_TYPE_DM2DRV);\ |
1a6944fd | 43 | \ |
7e616b10 RR |
44 | if( hproc )\ |
45 | hproc plist;\ | |
46 | } | |
1a6944fd RR |
47 | # endif |
48 | ||
49 | # ifdef NO_TRACE | |
50 | # define TRACE_DRV2DM( stm, procid, plist ) | |
51 | # else | |
52 | # define TRACE_DRV2DM( stm, procid, plist ) \ | |
7e616b10 RR |
53 | {\ |
54 | HPROC hproc;\ | |
1a6944fd | 55 | \ |
7e616b10 | 56 | hproc = _iodbcdm_gettrproc( stm, procid, TRACE_TYPE_DRV2DM);\ |
1a6944fd | 57 | \ |
7e616b10 RR |
58 | if( hproc )\ |
59 | hproc plist;\ | |
60 | } | |
1a6944fd RR |
61 | # endif |
62 | ||
63 | # ifdef NO_TRACE | |
64 | # define TRACE_RETURN( stm, trace_on, ret ) | |
65 | # else | |
66 | # define TRACE_RETURN( stm, trace_on, ret )\ | |
7e616b10 RR |
67 | {\ |
68 | if( trace_on ) {\ | |
69 | HPROC hproc;\ | |
1a6944fd | 70 | \ |
7e616b10 | 71 | hproc = _iodbcdm_gettrproc( stm, 0, TRACE_TYPE_RETURN);\ |
1a6944fd | 72 | \ |
7e616b10 RR |
73 | if( hproc )\ |
74 | hproc( stm, ret );\ | |
75 | }\ | |
76 | } | |
1a6944fd RR |
77 | # endif |
78 | ||
7e616b10 RR |
79 | # ifdef NO_TRACE |
80 | # define CALL_DRIVER( hdbc, ret, proc, procid, plist ) { ret = proc plist; } | |
1a6944fd RR |
81 | # else |
82 | # define CALL_DRIVER( hdbc, ret, proc, procid, plist )\ | |
7e616b10 RR |
83 | {\ |
84 | DBC_t FAR* pdbc = (DBC_t FAR*)(hdbc);\ | |
1a6944fd | 85 | \ |
7e616b10 RR |
86 | if( pdbc->trace ) {\ |
87 | TRACE_DM2DRV( pdbc->tstm, procid, plist )\ | |
88 | ret = proc plist;\ | |
89 | TRACE_DRV2DM( pdbc->tstm, procid, plist )\ | |
90 | TRACE_RETURN( pdbc->tstm, 1, ret )\ | |
91 | }\ | |
92 | else\ | |
93 | ret = proc plist;\ | |
94 | } | |
1a6944fd RR |
95 | # endif |
96 | ||
97 | #endif |