source: trunk/include/dbgwrap.h@ 9969

Last change on this file since 9969 was 9430, checked in by sandervl, 23 years ago

update

File size: 28.7 KB
RevLine 
[7862]1#ifndef __DBBWRAP_H__
2#define __DBBWRAP_H__
3
4#include <odinwrap.h>
5
6typedef DWORD (* WIN32API DBG_WINPROC0)();
7typedef DWORD (* WIN32API DBG_WINPROC4)(DWORD);
8typedef DWORD (* WIN32API DBG_WINPROC4_NORET)(DWORD);
9typedef DWORD (* WIN32API DBG_WINPROC8)(DWORD, DWORD);
10typedef DWORD (* WIN32API DBG_WINPROC12)(DWORD, DWORD, DWORD);
11typedef DWORD (* WIN32API DBG_WINPROC16)(DWORD, DWORD, DWORD, DWORD);
12typedef DWORD (* WIN32API DBG_WINPROC20)(DWORD, DWORD, DWORD, DWORD, DWORD);
13typedef DWORD (* WIN32API DBG_WINPROC24)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
14typedef DWORD (* WIN32API DBG_WINPROC28)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
15typedef DWORD (* WIN32API DBG_WINPROC32)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
16typedef DWORD (* WIN32API DBG_WINPROC36)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
17typedef DWORD (* WIN32API DBG_WINPROC40)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
18typedef DWORD (* WIN32API DBG_WINPROC44)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
19typedef DWORD (* WIN32API DBG_WINPROC48)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
[7922]20typedef DWORD (* WIN32API DBG_WINPROC52)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
[9430]21typedef DWORD (* WIN32API DBG_WINPROC56)(DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD);
[7862]22
[9430]23
[7862]24#define DEBUGWRAP0(a) \
25DWORD WIN32API Dbg##a() \
26{ \
27 DWORD ret; \
28 dprintf((DBGWRAP_MODULE": %s", #a)); \
29 dbg_ThreadPushCall(#a); \
30 ret = (DWORD)a(); \
31 dbg_ThreadPopCall(); \
32 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
33 return ret; \
34}
35
36#define DEBUGWRAP0_NORET(a) \
37void WIN32API Dbg##a() \
38{ \
39 DWORD ret; \
40 dprintf((DBGWRAP_MODULE": %s", #a)); \
41 dbg_ThreadPushCall(#a); \
42 a(); \
43 dbg_ThreadPopCall(); \
44}
45
46#define DEBUGWRAP4(a) \
47DWORD WIN32API Dbg##a(DWORD arg1) \
48{ \
49 DWORD ret; \
50 dprintf((DBGWRAP_MODULE": %s %x", #a, arg1)); \
51 dbg_ThreadPushCall(#a); \
52 ret = ((DBG_WINPROC4)a)(arg1); \
53 dbg_ThreadPopCall(); \
54 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
55 return ret; \
56}
57
58#define DEBUGWRAP4_NORET(a) \
59void WIN32API Dbg##a(DWORD arg1) \
60{ \
61 dprintf((DBGWRAP_MODULE": %s %x", #a, arg1)); \
62 dbg_ThreadPushCall(#a); \
63 ((DBG_WINPROC4_NORET)a)(arg1); \
64 dbg_ThreadPopCall(); \
65}
66
67#define DEBUGWRAP8(a) \
68DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2) \
69{ \
70 DWORD ret; \
71 dprintf((DBGWRAP_MODULE": %s %x %x", #a, arg1, arg2)); \
72 dbg_ThreadPushCall(#a); \
73 ret = ((DBG_WINPROC8)a)(arg1, arg2); \
74 dbg_ThreadPopCall(); \
75 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
76 return ret; \
77}
78
[8539]79#define DEBUGWRAP8_NORET(a) \
80void WIN32API Dbg##a(DWORD arg1, DWORD arg2) \
81{ \
82 dprintf((DBGWRAP_MODULE": %s %x %x", #a, arg1, arg2)); \
83 dbg_ThreadPushCall(#a); \
84 ((DBG_WINPROC8)a)(arg1, arg2); \
85 dbg_ThreadPopCall(); \
86 dprintf((DBGWRAP_MODULE": %s", #a)); \
87}
88
[7862]89#define DEBUGWRAP12(a) \
90DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3) \
91{ \
92 DWORD ret; \
93 dprintf((DBGWRAP_MODULE": %s %x %x %x", #a, arg1, arg2, arg3)); \
94 dbg_ThreadPushCall(#a); \
95 ret = ((DBG_WINPROC12)a)(arg1, arg2, arg3); \
96 dbg_ThreadPopCall(); \
97 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
98 return ret; \
99}
100
101#define DEBUGWRAP16(a) \
102DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4) \
103{ \
104 DWORD ret; \
105 dprintf((DBGWRAP_MODULE": %s %x %x %x %x", #a, arg1, arg2, arg3, arg4)); \
106 dbg_ThreadPushCall(#a); \
107 ret = ((DBG_WINPROC16)a)(arg1, arg2, arg3, arg4); \
108 dbg_ThreadPopCall(); \
109 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
110 return ret; \
111}
112
113#define DEBUGWRAP20(a) \
114DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5) \
115{ \
116 DWORD ret; \
117 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5)); \
118 dbg_ThreadPushCall(#a); \
119 ret = ((DBG_WINPROC20)a)(arg1, arg2, arg3, arg4, arg5); \
120 dbg_ThreadPopCall(); \
121 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
122 return ret; \
123}
124
125#define DEBUGWRAP24(a) \
126DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6) \
127{ \
128 DWORD ret; \
129 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6)); \
130 dbg_ThreadPushCall(#a); \
131 ret = ((DBG_WINPROC24)a)(arg1, arg2, arg3, arg4, arg5, arg6); \
132 dbg_ThreadPopCall(); \
133 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
134 return ret; \
135}
136
137#define DEBUGWRAP28(a) \
138DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7) \
139{ \
140 DWORD ret; \
[8539]141 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7)); \
[7862]142 dbg_ThreadPushCall(#a); \
143 ret = ((DBG_WINPROC28)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
144 dbg_ThreadPopCall(); \
145 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
146 return ret; \
147}
148
149#define DEBUGWRAP32(a) \
150DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8) \
151{ \
152 DWORD ret; \
[8539]153 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x ", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); \
[7862]154 dbg_ThreadPushCall(#a); \
155 ret = ((DBG_WINPROC32)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
156 dbg_ThreadPopCall(); \
157 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
158 return ret; \
159}
160
161#define DEBUGWRAP36(a) \
162DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9) \
163{ \
164 DWORD ret; \
[8539]165 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)); \
[7862]166 dbg_ThreadPushCall(#a); \
167 ret = ((DBG_WINPROC36)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
168 dbg_ThreadPopCall(); \
169 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
170 return ret; \
171}
172
173#define DEBUGWRAP40(a) \
174DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10) \
175{ \
176 DWORD ret; \
[8539]177 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)); \
[7862]178 dbg_ThreadPushCall(#a); \
179 ret = ((DBG_WINPROC40)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
180 dbg_ThreadPopCall(); \
181 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
182 return ret; \
183}
184
185#define DEBUGWRAP44(a) \
186DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11) \
187{ \
188 DWORD ret; \
[8539]189 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)); \
[7862]190 dbg_ThreadPushCall(#a); \
191 ret = ((DBG_WINPROC44)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
192 dbg_ThreadPopCall(); \
193 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
194 return ret; \
195}
196
197#define DEBUGWRAP48(a) \
198DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12) \
199{ \
200 DWORD ret; \
[8539]201 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)); \
[7862]202 dbg_ThreadPushCall(#a); \
203 ret = ((DBG_WINPROC48)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
204 dbg_ThreadPopCall(); \
205 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
206 return ret; \
207}
208
[7922]209#define DEBUGWRAP52(a) \
210DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13) \
211{ \
212 DWORD ret; \
[8539]213 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13)); \
[7922]214 dbg_ThreadPushCall(#a); \
215 ret = ((DBG_WINPROC52)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
216 dbg_ThreadPopCall(); \
217 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
218 return ret; \
219}
220
[9430]221#define DEBUGWRAP56(a) \
222DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13, DWORD arg14) \
223{ \
224 DWORD ret; \
225 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13)); \
226 dbg_ThreadPushCall(#a); \
227 ret = ((DBG_WINPROC56)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
228 dbg_ThreadPopCall(); \
229 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
230 return ret; \
231}
232
[7862]233//level 2 logging
234
235#define DEBUGWRAP_LVL2_0(a) \
236DWORD WIN32API Dbg##a() \
237{ \
238 DWORD ret; \
239 dprintf2((DBGWRAP_MODULE": %s", #a)); \
240 dbg_ThreadPushCall(#a); \
241 ret = ((DBG_WINPROC0)a)(); \
242 dbg_ThreadPopCall(); \
243 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
244 return ret; \
245}
246
247#define DEBUGWRAP_LVL2_4(a) \
248DWORD WIN32API Dbg##a(DWORD arg1) \
249{ \
250 DWORD ret; \
251 dprintf2((DBGWRAP_MODULE": %s %x", #a, arg1)); \
252 dbg_ThreadPushCall(#a); \
253 ret = ((DBG_WINPROC4)a)(arg1); \
254 dbg_ThreadPopCall(); \
255 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
256 return ret; \
257}
258
259#define DEBUGWRAP_LVL2_8(a) \
260DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2) \
261{ \
262 DWORD ret; \
263 dprintf2((DBGWRAP_MODULE": %s %x %x", #a, arg1, arg2)); \
264 dbg_ThreadPushCall(#a); \
265 ret = ((DBG_WINPROC8)a)(arg1, arg2); \
266 dbg_ThreadPopCall(); \
267 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
268 return ret; \
269}
270
271#define DEBUGWRAP_LVL2_12(a) \
272DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3) \
273{ \
274 DWORD ret; \
275 dprintf2((DBGWRAP_MODULE": %s %x %x %x", #a, arg1, arg2, arg3)); \
276 dbg_ThreadPushCall(#a); \
277 ret = ((DBG_WINPROC12)a)(arg1, arg2, arg3); \
278 dbg_ThreadPopCall(); \
279 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
280 return ret; \
281}
282
283#define DEBUGWRAP_LVL2_16(a) \
284DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4) \
285{ \
286 DWORD ret; \
287 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x", #a, arg1, arg2, arg3, arg4)); \
288 dbg_ThreadPushCall(#a); \
289 ret = ((DBG_WINPROC16)a)(arg1, arg2, arg3, arg4); \
290 dbg_ThreadPopCall(); \
291 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
292 return ret; \
293}
294
295#define DEBUGWRAP_LVL2_20(a) \
296DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5) \
297{ \
298 DWORD ret; \
299 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5)); \
300 dbg_ThreadPushCall(#a); \
301 ret = ((DBG_WINPROC20)a)(arg1, arg2, arg3, arg4, arg5); \
302 dbg_ThreadPopCall(); \
303 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
304 return ret; \
305}
306
307#define DEBUGWRAP_LVL2_24(a) \
308DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6) \
309{ \
310 DWORD ret; \
311 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6)); \
312 dbg_ThreadPushCall(#a); \
313 ret = ((DBG_WINPROC24)a)(arg1, arg2, arg3, arg4, arg5, arg6); \
314 dbg_ThreadPopCall(); \
315 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
316 return ret; \
317}
318
319#define DEBUGWRAP_LVL2_28(a) \
320DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7) \
321{ \
322 DWORD ret; \
[8539]323 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7)); \
[7862]324 dbg_ThreadPushCall(#a); \
325 ret = ((DBG_WINPROC28)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
326 dbg_ThreadPopCall(); \
327 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
328 return ret; \
329}
330
331#define DEBUGWRAP_LVL2_32(a) \
332DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8) \
333{ \
334 DWORD ret; \
[8539]335 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); \
[7862]336 dbg_ThreadPushCall(#a); \
337 ret = ((DBG_WINPROC32)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
338 dbg_ThreadPopCall(); \
339 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
340 return ret; \
341}
342
343#define DEBUGWRAP_LVL2_36(a) \
344DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9) \
345{ \
346 DWORD ret; \
[8539]347 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)); \
[7862]348 dbg_ThreadPushCall(#a); \
349 ret = ((DBG_WINPROC36)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
350 dbg_ThreadPopCall(); \
351 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
352 return ret; \
353}
354
355#define DEBUGWRAP_LVL2_40(a) \
356DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10) \
357{ \
358 DWORD ret; \
[8539]359 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)); \
[7862]360 dbg_ThreadPushCall(#a); \
361 ret = ((DBG_WINPROC40)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
362 dbg_ThreadPopCall(); \
363 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
364 return ret; \
365}
366
367#define DEBUGWRAP_LVL2_44(a) \
368DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11) \
369{ \
370 DWORD ret; \
[8539]371 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)); \
[7862]372 dbg_ThreadPushCall(#a); \
373 ret = ((DBG_WINPROC44)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
374 dbg_ThreadPopCall(); \
375 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
376 return ret; \
377}
378
379#define DEBUGWRAP_LVL2_48(a) \
380DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12) \
381{ \
382 DWORD ret; \
[8539]383 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)); \
[7862]384 dbg_ThreadPushCall(#a); \
385 ret = ((DBG_WINPROC48)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
386 dbg_ThreadPopCall(); \
387 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
388 return ret; \
389}
390
[7922]391#define DEBUGWRAP_LVL2_52(a) \
392DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13) \
393{ \
394 DWORD ret; \
[8539]395 dprintf2((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13)); \
[7922]396 dbg_ThreadPushCall(#a); \
397 ret = ((DBG_WINPROC52)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
398 dbg_ThreadPopCall(); \
399 dprintf2((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
400 return ret; \
401}
[7862]402
[7922]403
[7902]404//level 1 logging without function definitions
405
406#define NODEF_DEBUGWRAP0(a) \
407DWORD WIN32API a(); \
408DWORD WIN32API Dbg##a() \
409{ \
410 DWORD ret; \
411 dprintf((DBGWRAP_MODULE": %s", #a)); \
412 dbg_ThreadPushCall(#a); \
413 ret = (DWORD)a(); \
414 dbg_ThreadPopCall(); \
415 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
416 return ret; \
417}
418
419#define NODEF_DEBUGWRAP0_NORET(a) \
420void WIN32API a(); \
421void WIN32API Dbg##a() \
422{ \
423 DWORD ret; \
424 dprintf((DBGWRAP_MODULE": %s", #a)); \
425 dbg_ThreadPushCall(#a); \
426 a(); \
427 dbg_ThreadPopCall(); \
428}
429
430#define NODEF_DEBUGWRAP4(a) \
431DWORD WIN32API a(DWORD arg1); \
432DWORD WIN32API Dbg##a(DWORD arg1) \
433{ \
434 DWORD ret; \
435 dprintf((DBGWRAP_MODULE": %s %x", #a, arg1)); \
436 dbg_ThreadPushCall(#a); \
437 ret = ((DBG_WINPROC4)a)(arg1); \
438 dbg_ThreadPopCall(); \
439 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
440 return ret; \
441}
442
443#define NODEF_DEBUGWRAP4_NORET(a) \
444void WIN32API a(DWORD arg1); \
445void WIN32API Dbg##a(DWORD arg1) \
446{ \
447 dprintf((DBGWRAP_MODULE": %s %x", #a, arg1)); \
448 dbg_ThreadPushCall(#a); \
449 ((DBG_WINPROC4_NORET)a)(arg1); \
450 dbg_ThreadPopCall(); \
451}
452
453#define NODEF_DEBUGWRAP8(a) \
454DWORD WIN32API a(DWORD arg1, DWORD arg2); \
455DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2) \
456{ \
457 DWORD ret; \
458 dprintf((DBGWRAP_MODULE": %s %x %x", #a, arg1, arg2)); \
459 dbg_ThreadPushCall(#a); \
460 ret = ((DBG_WINPROC8)a)(arg1, arg2); \
461 dbg_ThreadPopCall(); \
462 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
463 return ret; \
464}
465
466#define NODEF_DEBUGWRAP12(a) \
467DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3); \
468DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3) \
469{ \
470 DWORD ret; \
471 dprintf((DBGWRAP_MODULE": %s %x %x %x", #a, arg1, arg2, arg3)); \
472 dbg_ThreadPushCall(#a); \
473 ret = ((DBG_WINPROC12)a)(arg1, arg2, arg3); \
474 dbg_ThreadPopCall(); \
475 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
476 return ret; \
477}
478
479#define NODEF_DEBUGWRAP16(a) \
480DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4); \
481DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4) \
482{ \
483 DWORD ret; \
484 dprintf((DBGWRAP_MODULE": %s %x %x %x %x", #a, arg1, arg2, arg3, arg4)); \
485 dbg_ThreadPushCall(#a); \
486 ret = ((DBG_WINPROC16)a)(arg1, arg2, arg3, arg4); \
487 dbg_ThreadPopCall(); \
488 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
489 return ret; \
490}
491
492#define NODEF_DEBUGWRAP20(a) \
493DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5); \
494DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5) \
495{ \
496 DWORD ret; \
497 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5)); \
498 dbg_ThreadPushCall(#a); \
499 ret = ((DBG_WINPROC20)a)(arg1, arg2, arg3, arg4, arg5); \
500 dbg_ThreadPopCall(); \
501 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
502 return ret; \
503}
504
505#define NODEF_DEBUGWRAP24(a) \
506DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6); \
507DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6) \
508{ \
509 DWORD ret; \
510 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6)); \
511 dbg_ThreadPushCall(#a); \
512 ret = ((DBG_WINPROC24)a)(arg1, arg2, arg3, arg4, arg5, arg6); \
513 dbg_ThreadPopCall(); \
514 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
515 return ret; \
516}
517
518#define NODEF_DEBUGWRAP28(a) \
519DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7); \
520DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7) \
521{ \
522 DWORD ret; \
[8539]523 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7)); \
[7902]524 dbg_ThreadPushCall(#a); \
525 ret = ((DBG_WINPROC28)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
526 dbg_ThreadPopCall(); \
527 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
528 return ret; \
529}
530
531#define NODEF_DEBUGWRAP32(a) \
532DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8); \
533DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8) \
534{ \
535 DWORD ret; \
[8539]536 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); \
[7902]537 dbg_ThreadPushCall(#a); \
538 ret = ((DBG_WINPROC32)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
539 dbg_ThreadPopCall(); \
540 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
541 return ret; \
542}
543
544#define NODEF_DEBUGWRAP36(a) \
545DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9); \
546DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9) \
547{ \
548 DWORD ret; \
[8539]549 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)); \
[7902]550 dbg_ThreadPushCall(#a); \
551 ret = ((DBG_WINPROC36)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
552 dbg_ThreadPopCall(); \
553 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
554 return ret; \
555}
556
557#define NODEF_DEBUGWRAP40(a) \
558DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10); \
559DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10) \
560{ \
561 DWORD ret; \
[8539]562 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10)); \
[7902]563 dbg_ThreadPushCall(#a); \
564 ret = ((DBG_WINPROC40)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
565 dbg_ThreadPopCall(); \
566 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
567 return ret; \
568}
569
570#define NODEF_DEBUGWRAP44(a) \
571DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11); \
572DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11) \
573{ \
574 DWORD ret; \
[8539]575 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)); \
[7902]576 dbg_ThreadPushCall(#a); \
577 ret = ((DBG_WINPROC44)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
578 dbg_ThreadPopCall(); \
579 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
580 return ret; \
581}
582
583#define NODEF_DEBUGWRAP48(a) \
584DWORD WIN32API a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12); \
585DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12) \
586{ \
587 DWORD ret; \
[8539]588 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12)); \
[7902]589 dbg_ThreadPushCall(#a); \
590 ret = ((DBG_WINPROC48)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
591 dbg_ThreadPopCall(); \
592 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
593 return ret; \
594}
595
[7922]596#define NODEF_DEBUGWRAP52(a) \
597DWORD WIN32API #a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13); \
598DWORD WIN32API Dbg##a(DWORD arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD arg5, DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9, DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13) \
599{ \
600 DWORD ret; \
[8539]601 dprintf((DBGWRAP_MODULE": %s %x %x %x %x %x %x %x %x %x %x %x %x %x", #a, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13)); \
[7922]602 dbg_ThreadPushCall(#a); \
603 ret = ((DBG_WINPROC52)a)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
604 dbg_ThreadPopCall(); \
605 dprintf((DBGWRAP_MODULE": %s returned %x", #a, ret)); \
606 return ret; \
607}
608
[7862]609#endif
610
Note: See TracBrowser for help on using the repository browser.