source: trunk/include/odinwrap.h@ 5369

Last change on this file since 5369 was 5276, checked in by sandervl, 25 years ago

header updates

File size: 39.9 KB
Line 
1/*
2 * Project Odin Software License can be found in LICENSE.TXT
3 *
4 * ODIN FS: Selector function wrapper macros
5 *
6 * Copyright 1999 Patrick Haller
7 *
8 */
9
10
11#ifndef _ODINWRAP_H_
12#define _ODINWRAP_H_
13
14#include <os2sel.h>
15
16/****************************************************************************
17 * Defines *
18 ****************************************************************************/
19
20// override debugging
21//#undef DEBUG
22//#define DEBUG
23
24// override profiling
25//#undef PROFILE
26//#define PROFILE
27
28
29
30#define ODIN_INTERNAL _Optlink
31
32
33#ifdef DEBUG
34# define ODINDEBUGCHANNEL(a) static char* pszOdinDebugChannel=#a;
35# define ODINDEBUGCHANNEL1(a) static char* pszOdinDebugChannel1=#a;
36#else
37# define ODINDEBUGCHANNEL(a)
38# define ODINDEBUGCHANNEL1(a)
39#endif
40
41
42//SvL: Define this to use the internal wrapper function of a specific api
43#ifdef DEBUG
44#define ODIN_EXTERN(a) ODIN_INTERNAL ODIN_##a
45#define CALL_ODINFUNC(a) ODIN_##a
46#else
47#define ODIN_EXTERN(a) ODIN_INTERNAL a
48#define CALL_ODINFUNC(a) a
49#endif
50
51
52#ifdef DEBUG
53
54//@@@PH 1999/10/25 IBM VAC++ debug memory support
55#include <malloc.h>
56#include <odin.h>
57
58// ---------------------------------------------------------------------------
59extern unsigned long int WIN32API GetCurrentThreadId(); //kernel32
60
61// ---------------------------------------------------------------------------
62//SvL: Only check the heap very frequently when there are problems
63//#define DEBUG_ODINHEAP
64#ifdef DEBUG_ODINHEAP
65#define ODIN_HEAPCHECK() _heap_check()
66#else
67#define ODIN_HEAPCHECK()
68#endif
69
70
71// ---------------------------------------------------------------------------
72// PH: this is for profiling cumulative method call times
73#ifdef PROFILE
74
75# define PROFILE_START(a) \
76 LARGE_INTEGER liStart; \
77 LARGE_INTEGER liEnd; \
78 unsigned long ulElapsed; \
79 QueryPerformanceCounter(&liStart);
80
81
82# define PROFILE_STOP(a) \
83 QueryPerformanceCounter(&liEnd);\
84 if (liStart.LowPart > liEnd.LowPart) \
85 ulElapsed = 0xFFFFFFFF - liStart.LowPart + liEnd.LowPart; \
86 else \
87 ulElapsed = liEnd.LowPart - liStart.LowPart; \
88 \
89 dprintf(("%s: %s %u ticks\n",\
90 pszOdinDebugChannel,\
91 a, \
92 ulElapsed));
93#else
94# define PROFILE_START(a)
95# define PROFILE_STOP(a)
96#endif
97
98
99#define FNPROLOGUE(a) \
100 USHORT sel = GetFS(); \
101 ODIN_HEAPCHECK(); \
102 PROFILE_START(a)
103
104#define FNEPILOGUE(a) \
105 PROFILE_STOP(a) \
106 ODIN_HEAPCHECK(); \
107 if (sel != GetFS()) { \
108 SetFS(sel); \
109 dprintf(("WARNING: FS: for thread %08xh corrupted by "a, GetCurrentThreadId())); \
110 }
111
112
113/****************************************************************************
114 * General Wrapper Macros (debug instrumented) *
115 ****************************************************************************/
116
117/* ---------- 0 parameters ---------- */
118#define ODINFUNCTION0(cRet,cName) \
119 cRet ODIN_INTERNAL ODIN_##cName (void); \
120 cRet WINAPI cName(void) \
121 { \
122 dprintf(("%s: "#cRet" "#cName"()", \
123 pszOdinDebugChannel)); \
124 FNPROLOGUE(#cName) \
125 cRet rc = ODIN_##cName(); \
126 FNEPILOGUE(#cName) \
127 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
128 pszOdinDebugChannel, \
129 rc)); \
130 return rc; \
131 } \
132 \
133 cRet ODIN_INTERNAL ODIN_##cName (void)
134
135
136#define ODINPROCEDURE0(cName) \
137 void ODIN_INTERNAL ODIN_##cName (void); \
138 void WINAPI cName(void) \
139 { \
140 dprintf(("%s: void "#cName"()", \
141 pszOdinDebugChannel)); \
142 FNPROLOGUE(#cName) \
143 ODIN_##cName(); \
144 dprintf(("%s: void "#cName"() leave\n", \
145 pszOdinDebugChannel)); \
146 FNEPILOGUE(#cName) \
147 } \
148 \
149 void ODIN_INTERNAL ODIN_##cName (void)
150
151
152/* ---------- 1 parameters ---------- */
153#define ODINFUNCTION1(cRet,cName,t1,a1) \
154 cRet ODIN_INTERNAL ODIN_##cName (t1 a1); \
155 cRet WINAPI cName(t1 a1) \
156 { \
157 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh)", \
158 pszOdinDebugChannel, \
159 a1)); \
160 FNPROLOGUE(#cName) \
161 cRet rc = ODIN_##cName(a1); \
162 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
163 pszOdinDebugChannel, \
164 rc)); \
165 FNEPILOGUE(#cName) \
166 return rc; \
167 } \
168 \
169 cRet ODIN_INTERNAL ODIN_##cName (t1 a1)
170
171#define ODINPROCEDURE1(cName,t1,a1) \
172 void ODIN_INTERNAL ODIN_##cName (t1 a1); \
173 void WINAPI cName(t1 a1) \
174 { \
175 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh)", \
176 pszOdinDebugChannel, \
177 a1)); \
178 FNPROLOGUE(#cName) \
179 ODIN_##cName(a1); \
180 dprintf(("%s: void "#cName"() leave\n", \
181 pszOdinDebugChannel)); \
182 FNEPILOGUE(#cName) \
183 } \
184 \
185 void ODIN_INTERNAL ODIN_##cName (t1 a1)
186
187
188/* ---------- 2 parameters ---------- */
189#define ODINFUNCTION2(cRet,cName,t1,a1,t2,a2) \
190 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
191 cRet WINAPI cName(t1 a1,t2 a2) \
192 { \
193 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \
194 pszOdinDebugChannel, \
195 a1,a2)); \
196 FNPROLOGUE(#cName) \
197 cRet rc = ODIN_##cName(a1,a2); \
198 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
199 pszOdinDebugChannel, \
200 rc)); \
201 FNEPILOGUE(#cName) \
202 return rc; \
203 } \
204 \
205 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
206
207#define ODINPROCEDURE2(cName,t1,a1,t2,a2) \
208 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
209 void WINAPI cName(t1 a1,t2 a2) \
210 { \
211 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \
212 pszOdinDebugChannel, \
213 a1,a2)); \
214 FNPROLOGUE(#cName) \
215 ODIN_##cName(a1,a2); \
216 dprintf(("%s: void "#cName"() leave\n", \
217 pszOdinDebugChannel)); \
218 FNEPILOGUE(#cName) \
219 } \
220 \
221 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
222
223
224/* ---------- 3 parameters ---------- */
225#define ODINFUNCTION3(cRet,cName,t1,a1,t2,a2,t3,a3) \
226 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
227 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \
228 { \
229 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \
230 pszOdinDebugChannel, \
231 a1,a2,a3)); \
232 FNPROLOGUE(#cName) \
233 cRet rc = ODIN_##cName(a1,a2,a3); \
234 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
235 pszOdinDebugChannel, \
236 rc)); \
237 FNEPILOGUE(#cName) \
238 return rc; \
239 } \
240 \
241 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
242
243#define ODINPROCEDURE3(cName,t1,a1,t2,a2,t3,a3) \
244 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
245 void WINAPI cName(t1 a1,t2 a2,t3 a3) \
246 { \
247 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \
248 pszOdinDebugChannel, \
249 a1,a2,a3)); \
250 FNPROLOGUE(#cName) \
251 ODIN_##cName(a1,a2,a3); \
252 pszOdinDebugChannel)); \
253 FNEPILOGUE(#cName) \
254 } \
255 \
256 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
257
258
259/* ---------- 4 parameters ---------- */
260#define ODINFUNCTION4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \
261 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
262 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
263 { \
264 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \
265 pszOdinDebugChannel, \
266 a1,a2,a3,a4)); \
267 FNPROLOGUE(#cName) \
268 cRet rc = ODIN_##cName(a1,a2,a3,a4); \
269 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
270 pszOdinDebugChannel, \
271 rc)); \
272 FNEPILOGUE(#cName) \
273 return rc; \
274 } \
275 \
276 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
277
278#define ODINPROCEDURE4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \
279 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
280 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
281 { \
282 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \
283 pszOdinDebugChannel, \
284 a1,a2,a3,a4)); \
285 FNPROLOGUE(#cName) \
286 ODIN_##cName(a1,a2,a3,a4); \
287 dprintf(("%s: void "#cName"() leave\n", \
288 pszOdinDebugChannel)); \
289 FNEPILOGUE \
290 } \
291 \
292 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
293
294
295/* ---------- 5 parameters ---------- */
296#define ODINFUNCTION5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
297 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
298 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
299 { \
300 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh" \
301 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \
302 pszOdinDebugChannel, \
303 a1,a2,a3,a4,a5)); \
304 FNPROLOGUE(#cName) \
305 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5); \
306 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
307 pszOdinDebugChannel, \
308 rc)); \
309 FNEPILOGUE(#cName) \
310 return rc; \
311 } \
312 \
313 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
314
315#define ODINPROCEDURE5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
316 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
317 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
318 { \
319 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
320 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \
321 pszOdinDebugChannel, \
322 a1,a2,a3,a4,a5)); \
323 FNPROLOGUE(#cName) \
324 ODIN_##cName(a1,a2,a3,a4,a5); \
325 pszOdinDebugChannel)); \
326 FNEPILOGUE \
327 } \
328 \
329 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
330
331
332/* ---------- 6 parameters ---------- */
333#define ODINFUNCTION6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
334 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
335 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
336 { \
337 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
338 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \
339 pszOdinDebugChannel, \
340 a1,a2,a3,a4,a5,a6)); \
341 FNPROLOGUE(#cName) \
342 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \
343 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
344 pszOdinDebugChannel, \
345 rc)); \
346 FNEPILOGUE(#cName) \
347 return rc; \
348 } \
349 \
350 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
351
352#define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
353 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
354 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
355 { \
356 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
357 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \
358 pszOdinDebugChannel, \
359 a1,a2,a3,a4,a5,a6)); \
360 FNPROLOGUE(#cName) \
361 ODIN_##cName(a1,a2,a3,a4,a5,a6); \
362 dprintf(("%s: void "#cName"() leave\n", \
363 pszOdinDebugChannel)); \
364 FNEPILOGUE \
365 } \
366 \
367 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
368
369
370/* ---------- 7 parameters ---------- */
371#define ODINFUNCTION7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
372 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
373 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
374 { \
375 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
376 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \
377 pszOdinDebugChannel, \
378 a1,a2,a3,a4,a5,a6,a7)); \
379 FNPROLOGUE(#cName) \
380 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
381 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
382 pszOdinDebugChannel, \
383 rc)); \
384 FNEPILOGUE(#cName) \
385 return rc; \
386 } \
387 \
388 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
389
390#define ODINPROCEDURE7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
391 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
392 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
393 { \
394 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
395 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \
396 pszOdinDebugChannel, \
397 a1,a2,a3,a4,a5,a6,a7)); \
398 FNPROLOGUE(#cName) \
399 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
400 dprintf(("%s: void "#cName"() leave\n", \
401 pszOdinDebugChannel)); \
402 FNEPILOGUE \
403 } \
404 \
405 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
406
407
408/* ---------- 8 parameters ---------- */
409#define ODINFUNCTION8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
410 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
411 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
412 { \
413 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
414 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
415 ", "#t8" "#a8"=%08xh)", \
416 pszOdinDebugChannel, \
417 a1,a2,a3,a4,a5,a6,a7,a8)); \
418 FNPROLOGUE(#cName) \
419 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
420 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
421 pszOdinDebugChannel, \
422 rc)); \
423 FNEPILOGUE(#cName) \
424 return rc; \
425 } \
426 \
427 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
428
429#define ODINPROCEDURE8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
430 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
431 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
432 { \
433 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
434 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
435 ", "#t8" "#a8"=%08xh)", \
436 pszOdinDebugChannel, \
437 a1,a2,a3,a4,a5,a6,a7,a8)); \
438 FNPROLOGUE(#cName) \
439 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
440 dprintf(("%s: void "#cName"() leave\n", \
441 pszOdinDebugChannel)); \
442 FNEPILOGUE \
443 } \
444 \
445 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
446
447
448/* ---------- 9 parameters ---------- */
449#define ODINFUNCTION9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
450 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
451 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
452 { \
453 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
454 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
455 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \
456 pszOdinDebugChannel, \
457 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \
458 FNPROLOGUE(#cName) \
459 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
460 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
461 pszOdinDebugChannel, \
462 rc)); \
463 FNEPILOGUE(#cName) \
464 return rc; \
465 } \
466 \
467 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
468
469#define ODINPROCEDURE9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
470 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
471 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
472 { \
473 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
474 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
475 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \
476 pszOdinDebugChannel, \
477 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \
478 FNPROLOGUE(#cName) \
479 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
480 dprintf(("%s: void "#cName"() leave\n", \
481 pszOdinDebugChannel)); \
482 FNEPILOGUE \
483 } \
484 \
485 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
486
487
488/* ---------- 10 parameters ---------- */
489#define ODINFUNCTION10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
490 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10); \
491 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
492 { \
493 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
494 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
495 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \
496 pszOdinDebugChannel, \
497 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10));\
498 FNPROLOGUE(#cName) \
499 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
500 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
501 pszOdinDebugChannel, \
502 rc)); \
503 FNEPILOGUE(#cName) \
504 return rc; \
505 } \
506 \
507 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
508
509#define ODINPROCEDURE10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
510 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10); \
511 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
512 { \
513 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
514 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
515 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \
516 pszOdinDebugChannel, \
517 a1,a2,a3)); \
518 FNPROLOGUE(#cName) \
519 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
520 dprintf(("%s: void "#cName"() leave\n", \
521 pszOdinDebugChannel)); \
522 FNEPILOGUE \
523 } \
524 \
525 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
526
527
528/* ---------- 11 parameters ---------- */
529#define ODINFUNCTION11(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11) \
530 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11); \
531 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11) \
532 { \
533 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
534 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
535 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \
536 pszOdinDebugChannel, \
537 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \
538 FNPROLOGUE(#cName) \
539 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
540 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
541 pszOdinDebugChannel, \
542 rc)); \
543 FNEPILOGUE(#cName) \
544 return rc; \
545 } \
546 \
547 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11)
548
549#define ODINPROCEDURE11(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11) \
550 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11); \
551 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11) \
552 { \
553 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
554 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
555 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \
556 pszOdinDebugChannel, \
557 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \
558 FNPROLOGUE(#cName) \
559 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
560 dprintf(("%s: void "#cName"() leave\n", \
561 pszOdinDebugChannel)); \
562 FNEPILOGUE \
563 } \
564 \
565 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11)
566
567
568/* ---------- 12 parameters ---------- */
569#define ODINFUNCTION12(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12) \
570 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12); \
571 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12) \
572 { \
573 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
574 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
575 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
576 ", "#t12" "#a12"=%08xh)", \
577 pszOdinDebugChannel, \
578 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \
579 FNPROLOGUE(#cName) \
580 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
581 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
582 pszOdinDebugChannel, \
583 rc)); \
584 FNEPILOGUE(#cName) \
585 return rc; \
586 } \
587 \
588 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12)
589
590#define ODINPROCEDURE12(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12) \
591 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12); \
592 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12) \
593 { \
594 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
595 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
596 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
597 ", "#t12" "#a12"=%08xh)", \
598 pszOdinDebugChannel, \
599 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \
600 FNPROLOGUE(#cName) \
601 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
602 dprintf(("%s: void "#cName"() leave\n", \
603 pszOdinDebugChannel)); \
604 FNEPILOGUE \
605 } \
606 \
607 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12)
608
609
610/* ---------- 13 parameters ---------- */
611#define ODINFUNCTION13(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13) \
612 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13); \
613 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13) \
614 { \
615 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
616 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
617 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
618 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh)", \
619 pszOdinDebugChannel, \
620 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \
621 FNPROLOGUE(#cName) \
622 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
623 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
624 pszOdinDebugChannel, \
625 rc)); \
626 FNEPILOGUE(#cName) \
627 return rc; \
628 } \
629 \
630 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13)
631
632#define ODINPROCEDURE13(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13) \
633 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13); \
634 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13) \
635 { \
636 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
637 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
638 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
639 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, )", \
640 pszOdinDebugChannel, \
641 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \
642 FNPROLOGUE(#cName) \
643 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
644 dprintf(("%s: void "#cName"() leave\n", \
645 pszOdinDebugChannel)); \
646 FNEPILOGUE \
647 } \
648 \
649 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13)
650
651
652/* ---------- 14 parameters ---------- */
653#define ODINFUNCTION14(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13,t14,a14) \
654 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14); \
655 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14) \
656 { \
657 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
658 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
659 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
660 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \
661 pszOdinDebugChannel, \
662 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \
663 FNPROLOGUE(#cName) \
664 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
665 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
666 pszOdinDebugChannel, \
667 rc)); \
668 FNEPILOGUE(#cName) \
669 return rc; \
670 } \
671 \
672 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14)
673
674#define ODINPROCEDURE14(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13,t14,a14) \
675 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14); \
676 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14) \
677 { \
678 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
679 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
680 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
681 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \
682 pszOdinDebugChannel, \
683 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \
684 FNPROLOGUE(#cName) \
685 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
686 dprintf(("%s: void "#cName"() leave\n", \
687 pszOdinDebugChannel)); \
688 FNEPILOGUE \
689 } \
690 \
691 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14)
692
693
694#else
695
696/****************************************************************************
697 * General Wrapper Macros *
698 ****************************************************************************/
699
700#define ODINFUNCTION0 ODINFUNCTIONNODBG0
701#define ODINFUNCTION1 ODINFUNCTIONNODBG1
702#define ODINFUNCTION2 ODINFUNCTIONNODBG2
703#define ODINFUNCTION3 ODINFUNCTIONNODBG3
704#define ODINFUNCTION4 ODINFUNCTIONNODBG4
705#define ODINFUNCTION5 ODINFUNCTIONNODBG5
706#define ODINFUNCTION6 ODINFUNCTIONNODBG6
707#define ODINFUNCTION7 ODINFUNCTIONNODBG7
708#define ODINFUNCTION8 ODINFUNCTIONNODBG8
709#define ODINFUNCTION9 ODINFUNCTIONNODBG9
710#define ODINFUNCTION10 ODINFUNCTIONNODBG10
711#define ODINFUNCTION11 ODINFUNCTIONNODBG11
712#define ODINFUNCTION12 ODINFUNCTIONNODBG12
713#define ODINFUNCTION13 ODINFUNCTIONNODBG13
714#define ODINFUNCTION14 ODINFUNCTIONNODBG14
715
716#define ODINPROCEDURE0 ODINPROCEDURENODBG0
717#define ODINPROCEDURE1 ODINPROCEDURENODBG1
718#define ODINPROCEDURE2 ODINPROCEDURENODBG2
719#define ODINPROCEDURE3 ODINPROCEDURENODBG3
720#define ODINPROCEDURE4 ODINPROCEDURENODBG4
721#define ODINPROCEDURE5 ODINPROCEDURENODBG5
722#define ODINPROCEDURE6 ODINPROCEDURENODBG6
723#define ODINPROCEDURE7 ODINPROCEDURENODBG7
724#define ODINPROCEDURE8 ODINPROCEDURENODBG8
725#define ODINPROCEDURE9 ODINPROCEDURENODBG9
726#define ODINPROCEDURE10 ODINPROCEDURENODBG10
727#define ODINPROCEDURE11 ODINPROCEDURENODBG11
728#define ODINPROCEDURE12 ODINPROCEDURENODBG12
729#define ODINPROCEDURE13 ODINPROCEDURENODBG13
730#define ODINPROCEDURE14 ODINPROCEDURENODBG14
731
732#endif
733
734/****************************************************************************
735 * General Wrapper Macros *
736 ****************************************************************************/
737
738/* ---------- 0 parameters ---------- */
739#define ODINFUNCTIONNODBG0(cRet,cName) cRet WINAPI cName(void)
740#define ODINPROCEDURENODBG0(cName) void WINAPI cName(void)
741
742/* ---------- 1 parameters ---------- */
743#define ODINFUNCTIONNODBG1(cRet,cName,t1,a1) cRet WINAPI cName(t1 a1)
744#define ODINPROCEDURENODBG1(cName,t1,a1) void WINAPI cName(t1 a1)
745
746/* ---------- 2 parameters ---------- */
747#define ODINFUNCTIONNODBG2(cRet,cName,t1,a1,t2,a2) cRet WINAPI cName(t1 a1,t2 a2)
748#define ODINPROCEDURENODBG2(cName,t1,a1,t2,a2) void WINAPI cName(t1 a1,t2 a2)
749
750/* ---------- 3 parameters ---------- */
751#define ODINFUNCTIONNODBG3(cRet,cName,t1,a1,t2,a2,t3,a3) cRet WINAPI cName(t1 a1,t2 a2,t3 a3)
752#define ODINPROCEDURENODBG3(cName,t1,a1,t2,a2,t3,a3) void WINAPI cName(t1 a1,t2 a2,t3 a3)
753
754/* ---------- 4 parameters ---------- */
755#define ODINFUNCTIONNODBG4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4)
756#define ODINPROCEDURENODBG4(cName,t1,a1,t2,a2,t3,a3,t4,a4) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4)
757
758/* ---------- 5 parameters ---------- */
759#define ODINFUNCTIONNODBG5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
760#define ODINPROCEDURENODBG5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
761
762/* ---------- 6 parameters ---------- */
763#define ODINFUNCTIONNODBG6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
764#define ODINPROCEDURENODBG6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
765
766/* ---------- 7 parameters ---------- */
767#define ODINFUNCTIONNODBG7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
768#define ODINPROCEDURENODBG7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
769
770/* ---------- 8 parameters ---------- */
771#define ODINFUNCTIONNODBG8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
772#define ODINPROCEDURENODBG8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
773
774/* ---------- 9 parameters ---------- */
775#define ODINFUNCTIONNODBG9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
776#define ODINPROCEDURENODBG9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
777
778/* ---------- 10 parameters ---------- */
779#define ODINFUNCTIONNODBG10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
780#define ODINPROCEDURENODBG10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
781
782/* ---------- 11 parameters ---------- */
783#define ODINFUNCTIONNODBG11(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11)
784#define ODINPROCEDURENODBG11(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11)
785
786/* ---------- 12 parameters ---------- */
787#define ODINFUNCTIONNODBG12(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12)
788#define ODINPROCEDURENODBG12(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12)
789
790/* ---------- 13 parameters ---------- */
791#define ODINFUNCTIONNODBG13(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13) \
792 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13)
793
794#define ODINPROCEDURENODBG13(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13) \
795 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13)
796
797/* ---------- 14 parameters ---------- */
798#define ODINFUNCTIONNODBG14(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13,t14,a14) \
799 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14)
800
801#define ODINPROCEDURENODBG14(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10,t11,a11,t12,a12,t13,a13,t14,a14) \
802 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10,t11 a11,t12 a12,t13 a13,t14 a14)
803
804
805#endif /* _ODINWRAP_H_ */
Note: See TracBrowser for help on using the repository browser.