source: trunk/include/odinwrap.h@ 10366

Last change on this file since 10366 was 7357, checked in by phaller, 24 years ago

Don't generate any wrapper function in release build

File size: 63.6 KB
RevLine 
[6893]1/*
[473]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_
[1545]12#define _ODINWRAP_H_
[473]13
[2341]14#include <os2sel.h>
[473]15
16/****************************************************************************
17 * Defines *
18 ****************************************************************************/
19
[3467]20// override debugging
21//#undef DEBUG
22//#define DEBUG
[537]23
[3467]24// override profiling
[4770]25//#undef PROFILE
26//#define PROFILE
[3467]27
28
[7357]29// check if release is really defined ...
30#if !defined(DEBUG) && !defined(PROFILE)
31#define RELEASE
32#endif
[3467]33
[7357]34
[533]35#define ODIN_INTERNAL _Optlink
[473]36
37
[475]38#ifdef DEBUG
39# define ODINDEBUGCHANNEL(a) static char* pszOdinDebugChannel=#a;
[4124]40# define ODINDEBUGCHANNEL1(a) static char* pszOdinDebugChannel1=#a;
[475]41#else
42# define ODINDEBUGCHANNEL(a)
[4124]43# define ODINDEBUGCHANNEL1(a)
[475]44#endif
45
46
[1642]47//SvL: Define this to use the internal wrapper function of a specific api
[4387]48#ifdef DEBUG
49#define ODIN_EXTERN(a) ODIN_INTERNAL ODIN_##a
50#define CALL_ODINFUNC(a) ODIN_##a
51#else
52#define ODIN_EXTERN(a) ODIN_INTERNAL a
53#define CALL_ODINFUNC(a) a
54#endif
[1642]55
[4377]56
[475]57#ifdef DEBUG
58
[1439]59//@@@PH 1999/10/25 IBM VAC++ debug memory support
60#include <malloc.h>
[4393]61#include <odin.h>
[1439]62
[4377]63// ---------------------------------------------------------------------------
[6912]64#ifdef __WATCOMC__
65//this doens't work with watcom because doubly declared somewhere :-(
66//extern unsigned long int WIN32API GetCurrentThreadId(void); // kernel32
67#else
68extern unsigned long int WIN32API GetCurrentThreadId(void); // kernel32
69#endif
70extern unsigned long int WIN32API dbg_GetThreadCallDepth(void); // kernel32
71extern void WIN32API dbg_IncThreadCallDepth(void); // kernel32
72extern void WIN32API dbg_DecThreadCallDepth(void); // kernel32
[7326]73extern void WIN32API dbg_ThreadPushCall(char *pszCaller);
74extern void WIN32API dbg_ThreadPopCall();
75extern char* WIN32API dbg_GetLastCallerName();
[1669]76
[7326]77
78
[4377]79// ---------------------------------------------------------------------------
[1545]80//SvL: Only check the heap very frequently when there are problems
81//#define DEBUG_ODINHEAP
82#ifdef DEBUG_ODINHEAP
83#define ODIN_HEAPCHECK() _heap_check()
84#else
85#define ODIN_HEAPCHECK()
86#endif
87
[4377]88
89// ---------------------------------------------------------------------------
[3467]90// PH: this is for profiling cumulative method call times
[4770]91#ifdef PROFILE
[3467]92
[7010]93#include <perfview.h>
94
95
[7002]96#define FNINIT \
97 LARGE_INTEGER liStart; \
98 LARGE_INTEGER liEnd; \
99 unsigned long ulElapsed; \
100 unsigned short sel;
101
[3467]102# define PROFILE_START(a) \
103 QueryPerformanceCounter(&liStart);
[6912]104
105
[3467]106# define PROFILE_STOP(a) \
107 QueryPerformanceCounter(&liEnd);\
108 if (liStart.LowPart > liEnd.LowPart) \
109 ulElapsed = 0xFFFFFFFF - liStart.LowPart + liEnd.LowPart; \
110 else \
111 ulElapsed = liEnd.LowPart - liStart.LowPart; \
112 \
[7326]113 PerfView_RegisterCall(dbg_GetLastCallerName(), a, ulElapsed); \
[7010]114 \
[3467]115 dprintf(("%s: %s %u ticks\n",\
116 pszOdinDebugChannel,\
117 a, \
118 ulElapsed));
119#else
120# define PROFILE_START(a)
121# define PROFILE_STOP(a)
122#endif
123
[7076]124
125
126#if defined(PROFILE) || defined(DEBUG)
127
[7002]128#ifndef FNINIT
[6997]129#define FNINIT \
130 unsigned short sel;
[7002]131#endif
[4377]132
133#define FNPROLOGUE(a) \
[6997]134 sel = GetFS(); \
[7326]135 dbg_ThreadPushCall(a); \
[4377]136 ODIN_HEAPCHECK(); \
137 PROFILE_START(a)
138
139#define FNEPILOGUE(a) \
140 PROFILE_STOP(a) \
141 ODIN_HEAPCHECK(); \
[7326]142 dbg_ThreadPopCall(); \
[5276]143 if (sel != GetFS()) { \
144 SetFS(sel); \
145 dprintf(("WARNING: FS: for thread %08xh corrupted by "a, GetCurrentThreadId())); \
146 }
[6912]147
[7076]148#endif
[6912]149
[7076]150
151#if defined(RELEASE)
152
153#define FNINIT
154#define FNPROLOGUE(a)
155#define FNEPILOGUE(a)
156
157#endif
158
[7357]159
[7076]160// check if all macros are defined
161#ifndef FNINIT
162#error FNINIT not defined: DEBUG, PROFILE, or RELEASE not specified
163#endif
164
165#ifndef FNPROLOGUE
166#error FNPROLOGUE not defined: DEBUG, PROFILE, or RELEASE not specified
167#endif
168
169#ifndef FNEPILOGUE
170#error FNEPILOGUE not defined: DEBUG, PROFILE, or RELEASE not specified
171#endif
172
173
[7357]174#endif /* DEBUG */
175
176
[473]177/****************************************************************************
[475]178 * General Wrapper Macros (debug instrumented) *
179 ****************************************************************************/
[7357]180#if defined(DEBUG) || defined(PROFILE)
[475]181
[7357]182
[475]183/* ---------- 0 parameters ---------- */
184#define ODINFUNCTION0(cRet,cName) \
[3467]185 cRet ODIN_INTERNAL ODIN_##cName (void); \
186 cRet WINAPI cName(void) \
[475]187 { \
[6997]188 FNINIT \
189 cRet rc; \
[4393]190 dprintf(("%s: "#cRet" "#cName"()", \
[475]191 pszOdinDebugChannel)); \
[4377]192 FNPROLOGUE(#cName) \
[6997]193 rc = ODIN_##cName(); \
[4377]194 FNEPILOGUE(#cName) \
[4393]195 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
196 pszOdinDebugChannel, \
197 rc)); \
[475]198 return rc; \
199 } \
200 \
[484]201 cRet ODIN_INTERNAL ODIN_##cName (void)
[475]202
203
204#define ODINPROCEDURE0(cName) \
[3467]205 void ODIN_INTERNAL ODIN_##cName (void); \
206 void WINAPI cName(void) \
[475]207 { \
[6997]208 FNINIT \
[4393]209 dprintf(("%s: void "#cName"()", \
[475]210 pszOdinDebugChannel)); \
[4377]211 FNPROLOGUE(#cName) \
[3467]212 ODIN_##cName(); \
[6829]213 FNEPILOGUE(#cName) \
[3467]214 dprintf(("%s: void "#cName"() leave\n", \
[475]215 pszOdinDebugChannel)); \
216 } \
217 \
[484]218 void ODIN_INTERNAL ODIN_##cName (void)
[475]219
220
221/* ---------- 1 parameters ---------- */
222#define ODINFUNCTION1(cRet,cName,t1,a1) \
[3467]223 cRet ODIN_INTERNAL ODIN_##cName (t1 a1); \
224 cRet WINAPI cName(t1 a1) \
[475]225 { \
[6997]226 FNINIT \
227 cRet rc; \
[4393]228 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh)", \
[475]229 pszOdinDebugChannel, \
230 a1)); \
[6997]231 FNPROLOGUE(#cName) \
232 rc = ODIN_##cName(a1); \
[6829]233 FNEPILOGUE(#cName) \
[475]234 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
235 pszOdinDebugChannel, \
236 rc)); \
237 return rc; \
238 } \
239 \
[484]240 cRet ODIN_INTERNAL ODIN_##cName (t1 a1)
[475]241
242#define ODINPROCEDURE1(cName,t1,a1) \
[3467]243 void ODIN_INTERNAL ODIN_##cName (t1 a1); \
244 void WINAPI cName(t1 a1) \
[475]245 { \
[6997]246 FNINIT \
[4393]247 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh)", \
[475]248 pszOdinDebugChannel, \
249 a1)); \
[4377]250 FNPROLOGUE(#cName) \
[3467]251 ODIN_##cName(a1); \
[6829]252 FNEPILOGUE(#cName) \
[3467]253 dprintf(("%s: void "#cName"() leave\n", \
[475]254 pszOdinDebugChannel)); \
255 } \
256 \
[484]257 void ODIN_INTERNAL ODIN_##cName (t1 a1)
[475]258
259
260/* ---------- 2 parameters ---------- */
261#define ODINFUNCTION2(cRet,cName,t1,a1,t2,a2) \
[3467]262 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
263 cRet WINAPI cName(t1 a1,t2 a2) \
[475]264 { \
[6997]265 FNINIT \
266 cRet rc; \
[4393]267 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \
[3467]268 pszOdinDebugChannel, \
269 a1,a2)); \
[4377]270 FNPROLOGUE(#cName) \
[6997]271 rc = ODIN_##cName(a1,a2); \
272 FNEPILOGUE(#cName) \
[475]273 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
[3467]274 pszOdinDebugChannel, \
275 rc)); \
276 return rc; \
277 } \
278 \
[484]279 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
[475]280
281#define ODINPROCEDURE2(cName,t1,a1,t2,a2) \
[484]282 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
[3467]283 void WINAPI cName(t1 a1,t2 a2) \
[475]284 { \
[6997]285 FNINIT \
[4393]286 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \
[475]287 pszOdinDebugChannel, \
288 a1,a2)); \
[4377]289 FNPROLOGUE(#cName) \
[3467]290 ODIN_##cName(a1,a2); \
[6829]291 FNEPILOGUE(#cName) \
[3467]292 dprintf(("%s: void "#cName"() leave\n", \
[475]293 pszOdinDebugChannel)); \
294 } \
295 \
[484]296 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
[475]297
298
299/* ---------- 3 parameters ---------- */
300#define ODINFUNCTION3(cRet,cName,t1,a1,t2,a2,t3,a3) \
[484]301 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
302 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \
[3467]303 { \
[6997]304 FNINIT \
305 cRet rc; \
[4393]306 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \
[475]307 pszOdinDebugChannel, \
308 a1,a2,a3)); \
[4377]309 FNPROLOGUE(#cName) \
[6997]310 rc = ODIN_##cName(a1,a2,a3); \
[6829]311 FNEPILOGUE(#cName) \
[475]312 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
313 pszOdinDebugChannel, \
314 rc)); \
315 return rc; \
316 } \
317 \
[484]318 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
[475]319
320#define ODINPROCEDURE3(cName,t1,a1,t2,a2,t3,a3) \
[484]321 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
322 void WINAPI cName(t1 a1,t2 a2,t3 a3) \
[475]323 { \
[6997]324 FNINIT \
[4393]325 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \
[475]326 pszOdinDebugChannel, \
327 a1,a2,a3)); \
[4377]328 FNPROLOGUE(#cName) \
[491]329 ODIN_##cName(a1,a2,a3); \
[6829]330 FNEPILOGUE(#cName) \
[5759]331 dprintf(("%s: void "#cName"() leave\n", \
[475]332 pszOdinDebugChannel)); \
333 } \
334 \
[484]335 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
[475]336
337
338/* ---------- 4 parameters ---------- */
339#define ODINFUNCTION4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \
[484]340 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
341 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
[475]342 { \
[6997]343 FNINIT \
344 cRet rc; \
[4393]345 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \
[475]346 pszOdinDebugChannel, \
347 a1,a2,a3,a4)); \
[4377]348 FNPROLOGUE(#cName) \
[6997]349 rc = ODIN_##cName(a1,a2,a3,a4); \
[6829]350 FNEPILOGUE(#cName) \
[475]351 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
352 pszOdinDebugChannel, \
353 rc)); \
354 return rc; \
355 } \
356 \
[484]357 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
[475]358
359#define ODINPROCEDURE4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \
[484]360 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
361 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
[475]362 { \
[6997]363 FNINIT \
[4393]364 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \
[475]365 pszOdinDebugChannel, \
366 a1,a2,a3,a4)); \
[4377]367 FNPROLOGUE(#cName) \
[491]368 ODIN_##cName(a1,a2,a3,a4); \
[6829]369 FNEPILOGUE(#cName) \
[5759]370 dprintf(("%s: void "#cName"() leave\n", \
[475]371 pszOdinDebugChannel)); \
372 } \
373 \
[484]374 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
[475]375
376
377/* ---------- 5 parameters ---------- */
378#define ODINFUNCTION5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
[484]379 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
380 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
[475]381 { \
[6997]382 FNINIT \
383 cRet rc; \
[4393]384 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh" \
[4377]385 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \
[475]386 pszOdinDebugChannel, \
387 a1,a2,a3,a4,a5)); \
[4377]388 FNPROLOGUE(#cName) \
[6997]389 rc = ODIN_##cName(a1,a2,a3,a4,a5); \
[6829]390 FNEPILOGUE(#cName) \
[475]391 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
392 pszOdinDebugChannel, \
393 rc)); \
394 return rc; \
395 } \
396 \
[484]397 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
[475]398
399#define ODINPROCEDURE5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
[484]400 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
401 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
[475]402 { \
[6997]403 FNINIT \
[4393]404 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[4377]405 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \
[475]406 pszOdinDebugChannel, \
407 a1,a2,a3,a4,a5)); \
[4377]408 FNPROLOGUE(#cName) \
[491]409 ODIN_##cName(a1,a2,a3,a4,a5); \
[6829]410 FNEPILOGUE(#cName) \
[5759]411 dprintf(("%s: void "#cName"() leave\n", \
[475]412 pszOdinDebugChannel)); \
413 } \
414 \
[484]415 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
[475]416
417
418/* ---------- 6 parameters ---------- */
419#define ODINFUNCTION6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
[484]420 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
421 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
[475]422 { \
[6997]423 FNINIT \
424 cRet rc; \
[4393]425 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[4377]426 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \
[475]427 pszOdinDebugChannel, \
[1437]428 a1,a2,a3,a4,a5,a6)); \
[4377]429 FNPROLOGUE(#cName) \
[6997]430 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \
[6829]431 FNEPILOGUE(#cName) \
[475]432 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
433 pszOdinDebugChannel, \
434 rc)); \
435 return rc; \
436 } \
437 \
[484]438 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
[475]439
440#define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
[484]441 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
442 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
[475]443 { \
[6997]444 FNINIT \
[4393]445 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[4377]446 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \
[475]447 pszOdinDebugChannel, \
[1437]448 a1,a2,a3,a4,a5,a6)); \
[4377]449 FNPROLOGUE(#cName) \
[491]450 ODIN_##cName(a1,a2,a3,a4,a5,a6); \
[6829]451 FNEPILOGUE(#cName) \
[475]452 dprintf(("%s: void "#cName"() leave\n", \
453 pszOdinDebugChannel)); \
454 } \
455 \
[484]456 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
[475]457
458
459/* ---------- 7 parameters ---------- */
460#define ODINFUNCTION7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
[484]461 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
462 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
[475]463 { \
[6997]464 FNINIT \
465 cRet rc; \
[4393]466 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[4377]467 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \
[475]468 pszOdinDebugChannel, \
[1437]469 a1,a2,a3,a4,a5,a6,a7)); \
[4377]470 FNPROLOGUE(#cName) \
[6997]471 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
[6829]472 FNEPILOGUE(#cName) \
[475]473 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
474 pszOdinDebugChannel, \
475 rc)); \
476 return rc; \
477 } \
478 \
[484]479 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
[475]480
481#define ODINPROCEDURE7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
[484]482 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
483 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
[475]484 { \
[6997]485 FNINIT \
[4393]486 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[4377]487 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \
[475]488 pszOdinDebugChannel, \
[1437]489 a1,a2,a3,a4,a5,a6,a7)); \
[4377]490 FNPROLOGUE(#cName) \
[491]491 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
[6829]492 FNEPILOGUE(#cName) \
[475]493 dprintf(("%s: void "#cName"() leave\n", \
494 pszOdinDebugChannel)); \
495 } \
496 \
[484]497 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
[475]498
499
500/* ---------- 8 parameters ---------- */
501#define ODINFUNCTION8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
[484]502 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
503 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
[475]504 { \
[6997]505 FNINIT \
506 cRet rc; \
[4393]507 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]508 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]509 ", "#t8" "#a8"=%08xh)", \
[475]510 pszOdinDebugChannel, \
[1437]511 a1,a2,a3,a4,a5,a6,a7,a8)); \
[4377]512 FNPROLOGUE(#cName) \
[6997]513 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
[6829]514 FNEPILOGUE(#cName) \
[475]515 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
516 pszOdinDebugChannel, \
517 rc)); \
518 return rc; \
519 } \
520 \
[484]521 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
[475]522
523#define ODINPROCEDURE8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
[484]524 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
525 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
[475]526 { \
[6997]527 FNINIT \
[4393]528 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]529 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]530 ", "#t8" "#a8"=%08xh)", \
[475]531 pszOdinDebugChannel, \
[1437]532 a1,a2,a3,a4,a5,a6,a7,a8)); \
[4377]533 FNPROLOGUE(#cName) \
[491]534 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
[6829]535 FNEPILOGUE(#cName) \
[475]536 dprintf(("%s: void "#cName"() leave\n", \
537 pszOdinDebugChannel)); \
538 } \
539 \
[484]540 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
[475]541
542
543/* ---------- 9 parameters ---------- */
544#define ODINFUNCTION9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
[484]545 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
546 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
[475]547 { \
[6997]548 FNINIT \
549 cRet rc; \
[4393]550 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]551 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]552 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \
[475]553 pszOdinDebugChannel, \
[1437]554 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \
[4377]555 FNPROLOGUE(#cName) \
[6997]556 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
[6829]557 FNEPILOGUE(#cName) \
[475]558 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
559 pszOdinDebugChannel, \
560 rc)); \
561 return rc; \
562 } \
563 \
[484]564 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
[475]565
566#define ODINPROCEDURE9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
[484]567 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
568 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
[475]569 { \
[6997]570 FNINIT \
[4393]571 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]572 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]573 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \
[475]574 pszOdinDebugChannel, \
[1437]575 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \
[4377]576 FNPROLOGUE(#cName) \
[491]577 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
[6829]578 FNEPILOGUE(#cName) \
[475]579 dprintf(("%s: void "#cName"() leave\n", \
580 pszOdinDebugChannel)); \
581 } \
582 \
[484]583 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
[475]584
585
586/* ---------- 10 parameters ---------- */
587#define ODINFUNCTION10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
[484]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); \
589 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
[475]590 { \
[6997]591 FNINIT \
592 cRet rc; \
[4393]593 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]594 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]595 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \
[475]596 pszOdinDebugChannel, \
[1437]597 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10));\
[4377]598 FNPROLOGUE(#cName) \
[6997]599 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
[6829]600 FNEPILOGUE(#cName) \
[475]601 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
602 pszOdinDebugChannel, \
603 rc)); \
604 return rc; \
605 } \
606 \
[484]607 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)
[475]608
609#define ODINPROCEDURE10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
[484]610 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); \
611 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
[475]612 { \
[6997]613 FNINIT \
[4393]614 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]615 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]616 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \
[475]617 pszOdinDebugChannel, \
618 a1,a2,a3)); \
[4377]619 FNPROLOGUE(#cName) \
[491]620 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
[6829]621 FNEPILOGUE(#cName) \
[475]622 dprintf(("%s: void "#cName"() leave\n", \
623 pszOdinDebugChannel)); \
624 } \
625 \
[484]626 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)
[475]627
628
629/* ---------- 11 parameters ---------- */
630#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) \
[484]631 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); \
632 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) \
[475]633 { \
[6997]634 FNINIT \
635 cRet rc; \
[4393]636 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]637 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]638 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \
[475]639 pszOdinDebugChannel, \
[1437]640 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \
[4377]641 FNPROLOGUE(#cName) \
[6997]642 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
[6829]643 FNEPILOGUE(#cName) \
[475]644 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
645 pszOdinDebugChannel, \
646 rc)); \
647 return rc; \
648 } \
649 \
[484]650 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)
[475]651
652#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) \
[484]653 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); \
654 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) \
[475]655 { \
[6997]656 FNINIT \
[4393]657 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]658 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
[4377]659 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \
[475]660 pszOdinDebugChannel, \
[1437]661 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \
[4377]662 FNPROLOGUE(#cName) \
[491]663 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
[6829]664 FNEPILOGUE(#cName) \
[475]665 dprintf(("%s: void "#cName"() leave\n", \
666 pszOdinDebugChannel)); \
667 } \
668 \
[484]669 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)
[475]670
671
672/* ---------- 12 parameters ---------- */
673#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) \
[484]674 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); \
675 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) \
[475]676 { \
[6997]677 FNINIT \
678 cRet rc; \
[4393]679 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]680 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
681 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]682 ", "#t12" "#a12"=%08xh)", \
[475]683 pszOdinDebugChannel, \
[1437]684 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \
[4377]685 FNPROLOGUE(#cName) \
[6997]686 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
[6829]687 FNEPILOGUE(#cName) \
[475]688 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
689 pszOdinDebugChannel, \
690 rc)); \
691 return rc; \
692 } \
693 \
[484]694 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)
[475]695
696#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) \
[484]697 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); \
698 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) \
[475]699 { \
[6997]700 FNINIT \
[4393]701 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[476]702 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
703 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]704 ", "#t12" "#a12"=%08xh)", \
[475]705 pszOdinDebugChannel, \
[1696]706 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \
[4377]707 FNPROLOGUE(#cName) \
[491]708 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
[6829]709 FNEPILOGUE(#cName) \
[475]710 dprintf(("%s: void "#cName"() leave\n", \
711 pszOdinDebugChannel)); \
712 } \
713 \
[484]714 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)
[475]715
716
[1696]717/* ---------- 13 parameters ---------- */
718#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) \
719 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); \
720 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) \
721 { \
[6997]722 FNINIT \
723 cRet rc; \
[4393]724 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[1696]725 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
726 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]727 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh)", \
[1696]728 pszOdinDebugChannel, \
729 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \
[4377]730 FNPROLOGUE(#cName) \
[6997]731 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
[6829]732 FNEPILOGUE(#cName) \
[1696]733 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
734 pszOdinDebugChannel, \
735 rc)); \
736 return rc; \
737 } \
738 \
739 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)
740
741#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) \
742 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); \
743 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) \
744 { \
[6997]745 FNINIT \
[4393]746 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[1696]747 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
748 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]749 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, )", \
[1696]750 pszOdinDebugChannel, \
751 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \
[4377]752 FNPROLOGUE(#cName) \
[1696]753 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
[6829]754 FNEPILOGUE(#cName) \
[1696]755 dprintf(("%s: void "#cName"() leave\n", \
756 pszOdinDebugChannel)); \
757 } \
758 \
759 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)
760
761
762/* ---------- 14 parameters ---------- */
763#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) \
764 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); \
765 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) \
766 { \
[6997]767 FNINIT \
768 cRet rc; \
[4393]769 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[1696]770 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
771 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]772 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \
[1696]773 pszOdinDebugChannel, \
774 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \
[4377]775 FNPROLOGUE(#cName) \
[6997]776 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
[6829]777 FNEPILOGUE(#cName) \
[1696]778 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
779 pszOdinDebugChannel, \
780 rc)); \
781 return rc; \
782 } \
783 \
784 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)
785
786#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) \
[1953]787 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); \
[1696]788 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) \
789 { \
[6997]790 FNINIT \
[4393]791 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
[1696]792 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \
793 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \
[4377]794 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \
[1696]795 pszOdinDebugChannel, \
796 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \
[4377]797 FNPROLOGUE(#cName) \
[1696]798 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
[6829]799 FNEPILOGUE(#cName) \
[1696]800 dprintf(("%s: void "#cName"() leave\n", \
801 pszOdinDebugChannel)); \
802 } \
803 \
804 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)
805
806
[1669]807/* ---------- 0 parameters ---------- */
[5759]808#define ODINFUNCTIONNODBG0(cRet,cName) \
809 cRet ODIN_INTERNAL ODIN_##cName (void); \
810 cRet WINAPI cName(void) \
811 { \
[6997]812 FNINIT \
813 cRet rc; \
[5759]814 FNPROLOGUE(#cName) \
[6997]815 rc = ODIN_##cName(); \
[5759]816 FNEPILOGUE(#cName) \
817 return rc; \
818 } \
819 \
820 cRet ODIN_INTERNAL ODIN_##cName (void)
[1669]821
[5759]822
823#define ODINPROCEDURENODBG0(cName) \
824 void ODIN_INTERNAL ODIN_##cName (void); \
825 void WINAPI cName(void) \
826 { \
[6997]827 FNINIT \
[5759]828 FNPROLOGUE(#cName) \
829 ODIN_##cName(); \
830 FNEPILOGUE(#cName) \
831 } \
832 \
833 void ODIN_INTERNAL ODIN_##cName (void)
834
835
[1669]836/* ---------- 1 parameters ---------- */
[5759]837#define ODINFUNCTIONNODBG1(cRet,cName,t1,a1) \
838 cRet ODIN_INTERNAL ODIN_##cName (t1 a1); \
839 cRet WINAPI cName(t1 a1) \
840 { \
[6997]841 FNINIT \
842 cRet rc; \
[5759]843 FNPROLOGUE(#cName) \
[6997]844 rc = ODIN_##cName(a1); \
[5759]845 FNEPILOGUE(#cName) \
846 return rc; \
847 } \
848 \
849 cRet ODIN_INTERNAL ODIN_##cName (t1 a1)
[1669]850
[5759]851#define ODINPROCEDURENODBG1(cName,t1,a1) \
852 void ODIN_INTERNAL ODIN_##cName (t1 a1); \
853 void WINAPI cName(t1 a1) \
854 { \
[6997]855 FNINIT \
[5759]856 FNPROLOGUE(#cName) \
857 ODIN_##cName(a1); \
858 FNEPILOGUE(#cName) \
859 } \
860 \
861 void ODIN_INTERNAL ODIN_##cName (t1 a1)
862
863
[1669]864/* ---------- 2 parameters ---------- */
[5759]865#define ODINFUNCTIONNODBG2(cRet,cName,t1,a1,t2,a2) \
866 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
867 cRet WINAPI cName(t1 a1,t2 a2) \
868 { \
[6997]869 FNINIT \
870 cRet rc; \
[5759]871 FNPROLOGUE(#cName) \
[6997]872 rc = ODIN_##cName(a1,a2); \
[5759]873 FNEPILOGUE(#cName) \
874 return rc; \
875 } \
876 \
877 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
[1669]878
[5759]879#define ODINPROCEDURENODBG2(cName,t1,a1,t2,a2) \
880 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \
881 void WINAPI cName(t1 a1,t2 a2) \
882 { \
[6997]883 FNINIT \
[5759]884 FNPROLOGUE(#cName) \
885 ODIN_##cName(a1,a2); \
886 FNEPILOGUE(#cName) \
887 } \
888 \
889 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2)
890
891
[1669]892/* ---------- 3 parameters ---------- */
[5759]893#define ODINFUNCTIONNODBG3(cRet,cName,t1,a1,t2,a2,t3,a3) \
894 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
895 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \
896 { \
[6997]897 FNINIT \
898 cRet rc; \
[5759]899 FNPROLOGUE(#cName) \
[6997]900 rc = ODIN_##cName(a1,a2,a3); \
[5759]901 FNEPILOGUE(#cName) \
902 return rc; \
903 } \
904 \
905 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
[1669]906
[5759]907#define ODINPROCEDURENODBG3(cName,t1,a1,t2,a2,t3,a3) \
908 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \
909 void WINAPI cName(t1 a1,t2 a2,t3 a3) \
910 { \
[6997]911 FNINIT \
[5759]912 FNPROLOGUE(#cName) \
913 ODIN_##cName(a1,a2,a3); \
914 FNEPILOGUE(#cName) \
915 } \
916 \
917 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3)
918
919
[1669]920/* ---------- 4 parameters ---------- */
[5759]921#define ODINFUNCTIONNODBG4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \
922 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
923 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
924 { \
[6997]925 FNINIT \
926 cRet rc; \
[5759]927 FNPROLOGUE(#cName) \
[6997]928 rc = ODIN_##cName(a1,a2,a3,a4); \
[5759]929 FNEPILOGUE(#cName) \
930 return rc; \
931 } \
932 \
933 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
[1669]934
[5759]935#define ODINPROCEDURENODBG4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \
936 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \
937 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \
938 { \
[6997]939 FNINIT \
[5759]940 FNPROLOGUE(#cName) \
941 ODIN_##cName(a1,a2,a3,a4); \
[6619]942 FNEPILOGUE(#cName) \
[5759]943 } \
944 \
945 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4)
946
947
[1669]948/* ---------- 5 parameters ---------- */
[5759]949#define ODINFUNCTIONNODBG5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
950 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
951 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
952 { \
[6997]953 FNINIT \
954 cRet rc; \
[5759]955 FNPROLOGUE(#cName) \
[6997]956 rc = ODIN_##cName(a1,a2,a3,a4,a5); \
[5759]957 FNEPILOGUE(#cName) \
958 return rc; \
959 } \
960 \
961 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
[1669]962
[5759]963#define ODINPROCEDURENODBG5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
964 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \
965 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \
966 { \
[6997]967 FNINIT \
[5759]968 FNPROLOGUE(#cName) \
969 ODIN_##cName(a1,a2,a3,a4,a5); \
[6620]970 FNEPILOGUE(#cName) \
[5759]971 } \
972 \
973 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
974
975
[1669]976/* ---------- 6 parameters ---------- */
[5759]977#define ODINFUNCTIONNODBG6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
978 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
979 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
980 { \
[6997]981 FNINIT \
982 cRet rc; \
[5759]983 FNPROLOGUE(#cName) \
[6997]984 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \
[5759]985 FNEPILOGUE(#cName) \
986 return rc; \
987 } \
988 \
989 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
[1669]990
[5759]991#define ODINPROCEDURENODBG6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
992 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \
993 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \
994 { \
[6997]995 FNINIT \
[5759]996 FNPROLOGUE(#cName) \
997 ODIN_##cName(a1,a2,a3,a4,a5,a6); \
[6620]998 FNEPILOGUE(#cName) \
[5759]999 } \
1000 \
1001 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
1002
1003
[1669]1004/* ---------- 7 parameters ---------- */
[5759]1005#define ODINFUNCTIONNODBG7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
1006 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
1007 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
1008 { \
[6997]1009 FNINIT \
1010 cRet rc; \
[5759]1011 FNPROLOGUE(#cName) \
[6997]1012 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
[5759]1013 FNEPILOGUE(#cName) \
1014 return rc; \
1015 } \
1016 \
1017 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
[1669]1018
[5759]1019#define ODINPROCEDURENODBG7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
1020 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \
1021 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \
1022 { \
[6997]1023 FNINIT \
[5759]1024 FNPROLOGUE(#cName) \
1025 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \
[6620]1026 FNEPILOGUE(#cName) \
[5759]1027 } \
1028 \
1029 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
1030
1031
[1669]1032/* ---------- 8 parameters ---------- */
[5759]1033#define ODINFUNCTIONNODBG8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
1034 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
1035 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
1036 { \
[6997]1037 FNINIT \
1038 cRet rc; \
[5759]1039 FNPROLOGUE(#cName) \
[6997]1040 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
[5759]1041 FNEPILOGUE(#cName) \
1042 return rc; \
1043 } \
1044 \
1045 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
[1669]1046
[5759]1047#define ODINPROCEDURENODBG8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
1048 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \
1049 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \
1050 { \
[6997]1051 FNINIT \
[5759]1052 FNPROLOGUE(#cName) \
1053 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \
[6620]1054 FNEPILOGUE(#cName) \
[5759]1055 } \
1056 \
1057 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
1058
1059
[1669]1060/* ---------- 9 parameters ---------- */
[5759]1061#define ODINFUNCTIONNODBG9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
1062 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
1063 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
1064 { \
[6997]1065 FNINIT \
1066 cRet rc; \
[5759]1067 FNPROLOGUE(#cName) \
[6997]1068 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
[5759]1069 FNEPILOGUE(#cName) \
1070 return rc; \
1071 } \
1072 \
1073 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
[1669]1074
[5759]1075#define ODINPROCEDURENODBG9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
1076 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \
1077 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \
1078 { \
[6997]1079 FNINIT \
[5759]1080 FNPROLOGUE(#cName) \
1081 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \
[6620]1082 FNEPILOGUE(#cName) \
[5759]1083 } \
1084 \
1085 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
1086
1087
[1669]1088/* ---------- 10 parameters ---------- */
[5759]1089#define ODINFUNCTIONNODBG10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
1090 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); \
1091 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
1092 { \
[6997]1093 FNINIT \
1094 cRet rc; \
[5759]1095 FNPROLOGUE(#cName) \
[6997]1096 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
[5759]1097 FNEPILOGUE(#cName) \
1098 return rc; \
1099 } \
1100 \
1101 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)
[1669]1102
[5759]1103#define ODINPROCEDURENODBG10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
1104 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); \
1105 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \
1106 { \
[6997]1107 FNINIT \
[5759]1108 FNPROLOGUE(#cName) \
1109 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \
[6620]1110 FNEPILOGUE(#cName) \
[5759]1111 } \
1112 \
1113 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)
1114
1115
[1669]1116/* ---------- 11 parameters ---------- */
[5759]1117#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) \
1118 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); \
1119 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) \
1120 { \
[6997]1121 FNINIT \
1122 cRet rc; \
[5759]1123 FNPROLOGUE(#cName) \
[6997]1124 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
[5759]1125 FNEPILOGUE(#cName) \
1126 return rc; \
1127 } \
1128 \
1129 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)
[1669]1130
[5759]1131#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) \
1132 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); \
1133 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) \
1134 { \
[6997]1135 FNINIT \
[5759]1136 FNPROLOGUE(#cName) \
1137 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \
[6620]1138 FNEPILOGUE(#cName) \
[5759]1139 } \
1140 \
1141 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)
1142
1143
[1669]1144/* ---------- 12 parameters ---------- */
[5759]1145#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) \
1146 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); \
1147 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) \
1148 { \
[6997]1149 FNINIT \
1150 cRet rc; \
[5759]1151 FNPROLOGUE(#cName) \
[6997]1152 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
[5759]1153 FNEPILOGUE(#cName) \
1154 return rc; \
1155 } \
1156 \
1157 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)
[1669]1158
[5759]1159#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) \
1160 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); \
1161 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) \
1162 { \
[6997]1163 FNINIT \
[5759]1164 FNPROLOGUE(#cName) \
1165 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \
[6620]1166 FNEPILOGUE(#cName) \
[5759]1167 } \
1168 \
1169 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)
1170
1171
[1696]1172/* ---------- 13 parameters ---------- */
1173#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) \
[5759]1174 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); \
1175 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) \
1176 { \
[6997]1177 FNINIT \
1178 cRet rc; \
[5759]1179 FNPROLOGUE(#cName) \
[6997]1180 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
[5759]1181 FNEPILOGUE(#cName) \
1182 return rc; \
1183 } \
1184 \
1185 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)
[1669]1186
[1696]1187#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) \
[5759]1188 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); \
1189 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) \
1190 { \
[6997]1191 FNINIT \
[5759]1192 FNPROLOGUE(#cName) \
1193 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \
[6620]1194 FNEPILOGUE(#cName) \
[5759]1195 } \
1196 \
1197 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)
[1669]1198
[5759]1199
[1696]1200/* ---------- 14 parameters ---------- */
1201#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) \
[5759]1202 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); \
1203 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) \
1204 { \
[6997]1205 FNINIT \
1206 cRet rc; \
[5759]1207 FNPROLOGUE(#cName) \
[6997]1208 rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
[5759]1209 FNEPILOGUE(#cName) \
1210 return rc; \
1211 } \
1212 \
1213 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)
[1696]1214
1215#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) \
[5759]1216 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); \
1217 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) \
1218 { \
[6997]1219 FNINIT \
[5759]1220 FNPROLOGUE(#cName) \
1221 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \
[6620]1222 FNEPILOGUE(#cName) \
[5759]1223 } \
1224 \
1225 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)
[1696]1226
[7357]1227
1228
1229#endif
1230
1231
1232
1233/****************************************************************************
1234 * Release Wrapper Macros (not instrumented) *
1235 ****************************************************************************/
1236#ifdef RELEASE
1237
1238 /* ---------- 0 parameters ---------- */
1239#define ODINFUNCTION0(cRet,cName) \
1240 cRet WINAPI cName(void)
1241
1242#define ODINPROCEDURE0(cName) \
1243 void WINAPI cName(void)
1244
1245
1246/* ---------- 1 parameters ---------- */
1247#define ODINFUNCTION1(cRet,cName,t1,a1) \
1248 cRet WINAPI cName(t1 a1)
1249
1250#define ODINPROCEDURE1(cName,t1,a1) \
1251 void WINAPI cName(t1 a1)
1252
1253/* ---------- 2 parameters ---------- */
1254#define ODINFUNCTION2(cRet,cName,t1,a1,t2,a2) \
1255 cRet WINAPI cName(t1 a1,t2 a2)
1256
1257#define ODINPROCEDURE2(cName,t1,a1,t2,a2) \
1258 void WINAPI cName(t1 a1,t2 a2)
1259
1260
1261/* ---------- 3 parameters ---------- */
1262#define ODINFUNCTION3(cRet,cName,t1,a1,t2,a2,t3,a3) \
1263 cRet WINAPI cName(t1 a1,t2 a2,t3 a3)
1264
1265#define ODINPROCEDURE3(cName,t1,a1,t2,a2,t3,a3) \
1266 void WINAPI cName(t1 a1,t2 a2,t3 a3)
1267
1268
1269/* ---------- 4 parameters ---------- */
1270#define ODINFUNCTION4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \
1271 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4)
1272
1273#define ODINPROCEDURE4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \
1274 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4)
1275
1276
1277/* ---------- 5 parameters ---------- */
1278#define ODINFUNCTION5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
1279 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
1280
1281#define ODINPROCEDURE5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
1282 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5)
1283
1284
1285/* ---------- 6 parameters ---------- */
1286#define ODINFUNCTION6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
1287 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
1288
1289#define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \
1290 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
1291
1292/* ---------- 7 parameters ---------- */
1293#define ODINFUNCTION7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
1294 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
1295
1296#define ODINPROCEDURE7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
1297 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7)
1298
1299/* ---------- 8 parameters ---------- */
1300#define ODINFUNCTION8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
1301 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
1302
1303#define ODINPROCEDURE8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \
1304 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8)
1305
1306/* ---------- 9 parameters ---------- */
1307#define ODINFUNCTION9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
1308 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
1309
1310#define ODINPROCEDURE9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \
1311 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9)
1312
1313/* ---------- 10 parameters ---------- */
1314#define ODINFUNCTION10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
1315 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
1316
1317#define ODINPROCEDURE10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \
1318 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10)
1319
1320/* ---------- 11 parameters ---------- */
1321#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) \
1322 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)
1323
1324#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) \
1325 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)
1326
1327/* ---------- 12 parameters ---------- */
1328#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) \
1329 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)
1330
1331#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) \
1332 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)
1333
1334/* ---------- 13 parameters ---------- */
1335#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) \
1336 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)
1337
1338#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) \
1339 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)
1340
1341/* ---------- 14 parameters ---------- */
1342#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) \
1343 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)
1344
1345#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) \
1346 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) \
1347
1348#define ODINFUNCTIONNODBG0 ODINFUNCTION0
1349#define ODINFUNCTIONNODBG1 ODINFUNCTION1
1350#define ODINFUNCTIONNODBG2 ODINFUNCTION2
1351#define ODINFUNCTIONNODBG3 ODINFUNCTION3
1352#define ODINFUNCTIONNODBG4 ODINFUNCTION4
1353#define ODINFUNCTIONNODBG5 ODINFUNCTION5
1354#define ODINFUNCTIONNODBG6 ODINFUNCTION6
1355#define ODINFUNCTIONNODBG7 ODINFUNCTION7
1356#define ODINFUNCTIONNODBG8 ODINFUNCTION8
1357#define ODINFUNCTIONNODBG9 ODINFUNCTION9
1358#define ODINFUNCTIONNODBG10 ODINFUNCTION10
1359#define ODINFUNCTIONNODBG11 ODINFUNCTION11
1360#define ODINFUNCTIONNODBG12 ODINFUNCTION12
1361#define ODINFUNCTIONNODBG13 ODINFUNCTION13
1362#define ODINFUNCTIONNODBG14 ODINFUNCTION14
1363
1364#define ODINPROCEDURENODBG0 ODINPROCEDURE0
1365#define ODINPROCEDURENODBG1 ODINPROCEDURE1
1366#define ODINPROCEDURENODBG2 ODINPROCEDURE2
1367#define ODINPROCEDURENODBG3 ODINPROCEDURE3
1368#define ODINPROCEDURENODBG4 ODINPROCEDURE4
1369#define ODINPROCEDURENODBG5 ODINPROCEDURE5
1370#define ODINPROCEDURENODBG6 ODINPROCEDURE6
1371#define ODINPROCEDURENODBG7 ODINPROCEDURE7
1372#define ODINPROCEDURENODBG8 ODINPROCEDURE8
1373#define ODINPROCEDURENODBG9 ODINPROCEDURE9
1374#define ODINPROCEDURENODBG10 ODINPROCEDURE10
1375#define ODINPROCEDURENODBG11 ODINPROCEDURE11
1376#define ODINPROCEDURENODBG12 ODINPROCEDURE12
1377#define ODINPROCEDURENODBG13 ODINPROCEDURE13
1378#define ODINPROCEDURENODBG14 ODINPROCEDURE14
1379
1380#endif /* RELEASE */
1381
1382
[473]1383#endif /* _ODINWRAP_H_ */
Note: See TracBrowser for help on using the repository browser.