Changeset 4377 for trunk/include/odinwrap.h
- Timestamp:
- Oct 2, 2000, 5:52:06 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/odinwrap.h
r4124 r4377 1 /* $Id: odinwrap.h,v 1.2 3 2000-08-30 13:56:37 sandervlExp $ */1 /* $Id: odinwrap.h,v 1.24 2000-10-02 15:52:06 phaller Exp $ */ 2 2 3 3 /* … … 45 45 #define ODIN_EXTERN(a) ODIN_INTERNAL ODIN_##a 46 46 47 48 49 47 50 #ifdef DEBUG 48 51 … … 50 53 #include <malloc.h> 51 54 52 #if 1 53 #define CheckFS(a) 54 #else 55 56 // --------------------------------------------------------------------------- 55 57 //SvL: Eases locating apis that corrupt FS 56 #define error_FSSelector " FS Selector for thread %d corrupted!!!"58 #define error_FSSelector "!!! ERROR - FS Selector for thread %d corrupted by this function call !!!" 57 59 58 60 extern int IsExeStarted(); //kernel32 59 61 60 #define CheckFS(sel) if(sel == 0x150b && IsExeStarted()) { \ 61 dprintf(((char *)error_FSSelector, GetCurrentThreadId())); \ 62 } 63 #endif 64 62 #define FS_check() \ 63 { USHORT sel = GetFS(); \ 64 if(sel == 0x150b && IsExeStarted()) \ 65 dprintf(((char *)error_FSSelector, GetCurrentThreadId())); \ 66 } 67 68 69 // --------------------------------------------------------------------------- 65 70 //SvL: Only check the heap very frequently when there are problems 66 71 //#define DEBUG_ODINHEAP 67 68 72 #ifdef DEBUG_ODINHEAP 69 73 #define ODIN_HEAPCHECK() _heap_check() … … 72 76 #endif 73 77 78 79 // --------------------------------------------------------------------------- 74 80 // PH: this is for profiling cumulative method call times 75 81 #ifdef PROFILE_ODIN … … 98 104 #endif 99 105 106 107 #define FNPROLOGUE(a) \ 108 ODIN_HEAPCHECK(); \ 109 PROFILE_START(a) 110 111 #define FNEPILOGUE(a) \ 112 PROFILE_STOP(a) \ 113 FS_check(); \ 114 ODIN_HEAPCHECK(); \ 115 116 100 117 /**************************************************************************** 101 118 * General Wrapper Macros (debug instrumented) * … … 107 124 cRet WINAPI cName(void) \ 108 125 { \ 109 unsigned short sel = RestoreOS2FS(); \ 110 dprintf(("%s: "#cRet" "#cName"() enter\n",\ 111 pszOdinDebugChannel)); \ 112 CheckFS(sel) \ 113 ODIN_HEAPCHECK(); \ 114 PROFILE_START(#cName) \ 126 dprintfNoEOL(("%s: "#cRet" "#cName"()", \ 127 pszOdinDebugChannel)); \ 128 FNPROLOGUE(#cName) \ 115 129 cRet rc = ODIN_##cName(); \ 116 PROFILE_STOP(#cName) \ 117 ODIN_HEAPCHECK(); \ 118 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 119 pszOdinDebugChannel, \ 120 rc)); \ 121 SetFS(sel); \ 130 FNEPILOGUE(#cName) \ 131 dprintf(("- rc = %08xh\n", rc)); \ 122 132 return rc; \ 123 133 } \ … … 130 140 void WINAPI cName(void) \ 131 141 { \ 132 unsigned short sel = RestoreOS2FS(); \ 133 dprintf(("%s: void "#cName"() enter\n", \ 134 pszOdinDebugChannel)); \ 135 CheckFS(sel) \ 136 ODIN_HEAPCHECK(); \ 137 PROFILE_START(#cName) \ 142 dprintfNoEOL(("%s: void "#cName"()", \ 143 pszOdinDebugChannel)); \ 144 FNPROLOGUE(#cName) \ 138 145 ODIN_##cName(); \ 139 PROFILE_STOP(#cName) \140 ODIN_HEAPCHECK(); \141 146 dprintf(("%s: void "#cName"() leave\n", \ 142 147 pszOdinDebugChannel)); \ 143 SetFS(sel);\148 FNEPILOGUE(#cName) \ 144 149 } \ 145 150 \ … … 152 157 cRet WINAPI cName(t1 a1) \ 153 158 { \ 154 unsigned short sel = RestoreOS2FS(); \ 155 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh) enter\n", \ 159 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh)", \ 156 160 pszOdinDebugChannel, \ 157 161 a1)); \ 158 CheckFS(sel) \ 159 ODIN_HEAPCHECK(); \ 160 PROFILE_START(#cName) \ 162 FNPROLOGUE(#cName) \ 161 163 cRet rc = ODIN_##cName(a1); \ 162 PROFILE_STOP(#cName) \ 163 ODIN_HEAPCHECK(); \ 164 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 165 pszOdinDebugChannel, \ 166 rc)); \ 167 SetFS(sel); \ 164 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 165 pszOdinDebugChannel, \ 166 rc)); \ 167 FNEPILOGUE(#cName) \ 168 168 return rc; \ 169 169 } \ … … 175 175 void WINAPI cName(t1 a1) \ 176 176 { \ 177 unsigned short sel = RestoreOS2FS(); \ 178 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh) enter\n", \ 177 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh)", \ 179 178 pszOdinDebugChannel, \ 180 179 a1)); \ 181 CheckFS(sel) \ 182 ODIN_HEAPCHECK(); \ 183 PROFILE_START(#cName) \ 180 FNPROLOGUE(#cName) \ 184 181 ODIN_##cName(a1); \ 185 PROFILE_STOP(#cName) \186 ODIN_HEAPCHECK(); \187 182 dprintf(("%s: void "#cName"() leave\n", \ 188 183 pszOdinDebugChannel)); \ 189 SetFS(sel);\184 FNEPILOGUE(#cName) \ 190 185 } \ 191 186 \ … … 198 193 cRet WINAPI cName(t1 a1,t2 a2) \ 199 194 { \ 200 unsigned short sel = RestoreOS2FS(); \ 201 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh) enter\n", \ 195 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \ 202 196 pszOdinDebugChannel, \ 203 197 a1,a2)); \ 204 CheckFS(sel) \ 205 ODIN_HEAPCHECK(); \ 206 PROFILE_START(#cName) \ 198 FNPROLOGUE(#cName) \ 207 199 cRet rc = ODIN_##cName(a1,a2); \ 208 PROFILE_STOP(#cName) \209 ODIN_HEAPCHECK(); \210 200 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 211 201 pszOdinDebugChannel, \ 212 202 rc)); \ 213 SetFS(sel);\203 FNEPILOGUE(#cName) \ 214 204 return rc; \ 215 205 } \ … … 221 211 void WINAPI cName(t1 a1,t2 a2) \ 222 212 { \ 223 unsigned short sel = RestoreOS2FS(); \ 224 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh) enter\n", \ 213 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh)", \ 225 214 pszOdinDebugChannel, \ 226 215 a1,a2)); \ 227 CheckFS(sel) \ 228 ODIN_HEAPCHECK(); \ 229 PROFILE_START(#cName) \ 216 FNPROLOGUE(#cName) \ 230 217 ODIN_##cName(a1,a2); \ 231 PROFILE_STOP(#cName) \232 ODIN_HEAPCHECK(); \233 218 dprintf(("%s: void "#cName"() leave\n", \ 234 219 pszOdinDebugChannel)); \ 235 SetFS(sel);\220 FNEPILOGUE(#cName) \ 236 221 } \ 237 222 \ … … 244 229 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \ 245 230 { \ 246 unsigned short sel = RestoreOS2FS(); \ 247 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh) enter\n", \ 231 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \ 248 232 pszOdinDebugChannel, \ 249 233 a1,a2,a3)); \ 250 CheckFS(sel) \ 251 ODIN_HEAPCHECK(); \ 252 PROFILE_START(#cName) \ 234 FNPROLOGUE(#cName) \ 253 235 cRet rc = ODIN_##cName(a1,a2,a3); \ 254 PROFILE_STOP(#cName) \ 255 ODIN_HEAPCHECK(); \ 256 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 257 pszOdinDebugChannel, \ 258 rc)); \ 259 SetFS(sel); \ 236 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 237 pszOdinDebugChannel, \ 238 rc)); \ 239 FNEPILOGUE(#cName) \ 260 240 return rc; \ 261 241 } \ … … 267 247 void WINAPI cName(t1 a1,t2 a2,t3 a3) \ 268 248 { \ 269 unsigned short sel = RestoreOS2FS(); \ 270 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh) enter\n", \ 249 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)", \ 271 250 pszOdinDebugChannel, \ 272 251 a1,a2,a3)); \ 273 CheckFS(sel) \ 274 ODIN_HEAPCHECK(); \ 275 PROFILE_START(#cName) \ 252 FNPROLOGUE(#cName) \ 276 253 ODIN_##cName(a1,a2,a3); \ 277 PROFILE_STOP(#cName) \ 278 ODIN_HEAPCHECK(); \ 279 dprintf(("%s: void "#cName"() leave\n", \ 280 pszOdinDebugChannel)); \ 281 SetFS(sel); \ 254 pszOdinDebugChannel)); \ 255 FNEPILOGUE(#cName) \ 282 256 } \ 283 257 \ … … 290 264 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 291 265 { \ 292 unsigned short sel = RestoreOS2FS(); \ 293 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh) enter\n", \ 266 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \ 294 267 pszOdinDebugChannel, \ 295 268 a1,a2,a3,a4)); \ 296 CheckFS(sel) \ 297 ODIN_HEAPCHECK(); \ 298 PROFILE_START(#cName) \ 269 FNPROLOGUE(#cName) \ 299 270 cRet rc = ODIN_##cName(a1,a2,a3,a4); \ 300 PROFILE_STOP(#cName) \ 301 ODIN_HEAPCHECK(); \ 302 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 303 pszOdinDebugChannel, \ 304 rc)); \ 305 SetFS(sel); \ 271 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 272 pszOdinDebugChannel, \ 273 rc)); \ 274 FNEPILOGUE(#cName) \ 306 275 return rc; \ 307 276 } \ … … 313 282 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 314 283 { \ 315 unsigned short sel = RestoreOS2FS(); \ 316 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh) enter\n", \ 284 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh, "#t4" "#a4"=%08xh)", \ 317 285 pszOdinDebugChannel, \ 318 286 a1,a2,a3,a4)); \ 319 CheckFS(sel) \ 320 ODIN_HEAPCHECK(); \ 321 PROFILE_START(#cName) \ 287 FNPROLOGUE(#cName) \ 322 288 ODIN_##cName(a1,a2,a3,a4); \ 323 PROFILE_STOP(#cName) \ 324 ODIN_HEAPCHECK(); \ 325 dprintf(("%s: void "#cName"() leave\n", \ 326 pszOdinDebugChannel)); \ 327 SetFS(sel); \ 289 dprintf(("%s: void "#cName"() leave\n", \ 290 pszOdinDebugChannel)); \ 291 FNEPILOGUE \ 328 292 } \ 329 293 \ … … 336 300 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 337 301 { \ 338 unsigned short sel = RestoreOS2FS(); \ 339 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh" \ 340 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh) enter\n", \ 302 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh" \ 303 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \ 341 304 pszOdinDebugChannel, \ 342 305 a1,a2,a3,a4,a5)); \ 343 CheckFS(sel) \ 344 ODIN_HEAPCHECK(); \ 345 PROFILE_START(#cName) \ 306 FNPROLOGUE(#cName) \ 346 307 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5); \ 347 PROFILE_STOP(#cName) \ 348 ODIN_HEAPCHECK(); \ 349 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 350 pszOdinDebugChannel, \ 351 rc)); \ 352 SetFS(sel); \ 308 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 309 pszOdinDebugChannel, \ 310 rc)); \ 311 FNEPILOGUE(#cName) \ 353 312 return rc; \ 354 313 } \ … … 360 319 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 361 320 { \ 362 unsigned short sel = RestoreOS2FS(); \ 363 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 364 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh) enter\n", \ 321 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 322 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh)", \ 365 323 pszOdinDebugChannel, \ 366 324 a1,a2,a3,a4,a5)); \ 367 CheckFS(sel) \ 368 ODIN_HEAPCHECK(); \ 369 PROFILE_START(#cName) \ 325 FNPROLOGUE(#cName) \ 370 326 ODIN_##cName(a1,a2,a3,a4,a5); \ 371 PROFILE_STOP(#cName) \ 372 ODIN_HEAPCHECK(); \ 373 dprintf(("%s: void "#cName"() leave\n", \ 374 pszOdinDebugChannel)); \ 375 SetFS(sel); \ 327 pszOdinDebugChannel)); \ 328 FNEPILOGUE \ 376 329 } \ 377 330 \ … … 384 337 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 385 338 { \ 386 unsigned short sel = RestoreOS2FS(); \ 387 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 388 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh) enter\n", \ 339 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 340 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \ 389 341 pszOdinDebugChannel, \ 390 342 a1,a2,a3,a4,a5,a6)); \ 391 CheckFS(sel) \ 392 ODIN_HEAPCHECK(); \ 393 PROFILE_START(#cName) \ 343 FNPROLOGUE(#cName) \ 394 344 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 395 PROFILE_STOP(#cName) \ 396 ODIN_HEAPCHECK(); \ 397 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 398 pszOdinDebugChannel, \ 399 rc)); \ 400 SetFS(sel); \ 345 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 346 pszOdinDebugChannel, \ 347 rc)); \ 348 FNEPILOGUE(#cName) \ 401 349 return rc; \ 402 350 } \ … … 410 358 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 411 359 { \ 412 unsigned short sel = RestoreOS2FS(); \ 413 dprintf(("%s: "#cRet" "#cName"(selFS=%04xh, "#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 414 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh) enter\n", \ 360 dprintfNoEOL(("%s: "#cRet" "#cName"(selFS=%04xh, "#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 361 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \ 415 362 pszOdinDebugChannel, \ 416 363 sel, \ 417 364 a1,a2,a3,a4,a5,a6)); \ 418 CheckFS(sel) \ 419 ODIN_HEAPCHECK(); \ 420 PROFILE_START(#cName) \ 365 FNPROLOGUE(#cName) \ 421 366 cRet rc = ODIN_##cName(sel,a1,a2,a3,a4,a5,a6); \ 422 PROFILE_STOP(#cName) \ 423 ODIN_HEAPCHECK(); \ 424 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 425 pszOdinDebugChannel, \ 426 rc)); \ 427 SetFS(sel); \ 367 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 368 pszOdinDebugChannel, \ 369 rc)); \ 370 FNEPILOGUE(#cName) \ 428 371 return rc; \ 429 372 } \ … … 436 379 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 437 380 { \ 438 unsigned short sel = RestoreOS2FS(); \ 439 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 440 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh) enter\n", \ 381 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 382 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh)", \ 441 383 pszOdinDebugChannel, \ 442 384 a1,a2,a3,a4,a5,a6)); \ 443 CheckFS(sel) \ 444 ODIN_HEAPCHECK(); \ 445 PROFILE_START(#cName) \ 385 FNPROLOGUE(#cName) \ 446 386 ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 447 PROFILE_STOP(#cName) \ 448 ODIN_HEAPCHECK(); \ 449 dprintf(("%s: void "#cName"() leave\n", \ 450 pszOdinDebugChannel)); \ 451 SetFS(sel); \ 387 dprintf(("%s: void "#cName"() leave\n", \ 388 pszOdinDebugChannel)); \ 389 FNEPILOGUE \ 452 390 } \ 453 391 \ … … 460 398 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 461 399 { \ 462 unsigned short sel = RestoreOS2FS(); \ 463 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 464 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh) enter\n", \ 400 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 401 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \ 465 402 pszOdinDebugChannel, \ 466 403 a1,a2,a3,a4,a5,a6,a7)); \ 467 CheckFS(sel) \ 468 ODIN_HEAPCHECK(); \ 469 PROFILE_START(#cName) \ 404 FNPROLOGUE(#cName) \ 470 405 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 471 PROFILE_STOP(#cName) \ 472 ODIN_HEAPCHECK(); \ 473 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 474 pszOdinDebugChannel, \ 475 rc)); \ 476 SetFS(sel); \ 406 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 407 pszOdinDebugChannel, \ 408 rc)); \ 409 FNEPILOGUE(#cName) \ 477 410 return rc; \ 478 411 } \ … … 484 417 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 485 418 { \ 486 unsigned short sel = RestoreOS2FS(); \ 487 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 488 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh) enter\n", \ 419 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 420 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh)", \ 489 421 pszOdinDebugChannel, \ 490 422 a1,a2,a3,a4,a5,a6,a7)); \ 491 CheckFS(sel) \ 492 ODIN_HEAPCHECK(); \ 493 PROFILE_START(#cName) \ 423 FNPROLOGUE(#cName) \ 494 424 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 495 PROFILE_STOP(#cName) \ 496 ODIN_HEAPCHECK(); \ 497 dprintf(("%s: void "#cName"() leave\n", \ 498 pszOdinDebugChannel)); \ 499 SetFS(sel); \ 425 dprintf(("%s: void "#cName"() leave\n", \ 426 pszOdinDebugChannel)); \ 427 FNEPILOGUE \ 500 428 } \ 501 429 \ … … 508 436 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 509 437 { \ 510 unsigned short sel = RestoreOS2FS(); \ 511 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 438 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 512 439 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 513 ", "#t8" "#a8"=%08xh) enter\n", \440 ", "#t8" "#a8"=%08xh)", \ 514 441 pszOdinDebugChannel, \ 515 442 a1,a2,a3,a4,a5,a6,a7,a8)); \ 516 CheckFS(sel) \ 517 ODIN_HEAPCHECK(); \ 518 PROFILE_START(#cName) \ 443 FNPROLOGUE(#cName) \ 519 444 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 520 PROFILE_STOP(#cName) \ 521 ODIN_HEAPCHECK(); \ 522 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 523 pszOdinDebugChannel, \ 524 rc)); \ 525 SetFS(sel); \ 445 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 446 pszOdinDebugChannel, \ 447 rc)); \ 448 FNEPILOGUE(#cName) \ 526 449 return rc; \ 527 450 } \ … … 533 456 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 534 457 { \ 535 unsigned short sel = RestoreOS2FS(); \ 536 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 458 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 537 459 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 538 ", "#t8" "#a8"=%08xh) enter\n", \460 ", "#t8" "#a8"=%08xh)", \ 539 461 pszOdinDebugChannel, \ 540 462 a1,a2,a3,a4,a5,a6,a7,a8)); \ 541 ODIN_HEAPCHECK(); \ 542 CheckFS(sel) \ 543 PROFILE_START(#cName) \ 463 FNPROLOGUE(#cName) \ 544 464 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 545 PROFILE_STOP(#cName) \ 546 ODIN_HEAPCHECK(); \ 547 dprintf(("%s: void "#cName"() leave\n", \ 548 pszOdinDebugChannel)); \ 549 SetFS(sel); \ 465 dprintf(("%s: void "#cName"() leave\n", \ 466 pszOdinDebugChannel)); \ 467 FNEPILOGUE \ 550 468 } \ 551 469 \ … … 558 476 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 559 477 { \ 560 unsigned short sel = RestoreOS2FS(); \ 561 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 478 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 562 479 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 563 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh) enter\n", \480 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \ 564 481 pszOdinDebugChannel, \ 565 482 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \ 566 CheckFS(sel) \ 567 ODIN_HEAPCHECK(); \ 568 PROFILE_START(#cName) \ 483 FNPROLOGUE(#cName) \ 569 484 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 570 PROFILE_STOP(#cName) \ 571 ODIN_HEAPCHECK(); \ 572 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 573 pszOdinDebugChannel, \ 574 rc)); \ 575 SetFS(sel); \ 485 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 486 pszOdinDebugChannel, \ 487 rc)); \ 488 FNEPILOGUE(#cName) \ 576 489 return rc; \ 577 490 } \ … … 583 496 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 584 497 { \ 585 unsigned short sel = RestoreOS2FS(); \ 586 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 498 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 587 499 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 588 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh) enter\n", \500 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh)", \ 589 501 pszOdinDebugChannel, \ 590 502 a1,a2,a3,a4,a5,a6,a7,a8,a9)); \ 591 CheckFS(sel) \ 592 ODIN_HEAPCHECK(); \ 593 PROFILE_START(#cName) \ 503 FNPROLOGUE(#cName) \ 594 504 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 595 PROFILE_STOP(#cName) \ 596 ODIN_HEAPCHECK(); \ 597 dprintf(("%s: void "#cName"() leave\n", \ 598 pszOdinDebugChannel)); \ 599 SetFS(sel); \ 505 dprintf(("%s: void "#cName"() leave\n", \ 506 pszOdinDebugChannel)); \ 507 FNEPILOGUE \ 600 508 } \ 601 509 \ … … 608 516 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 609 517 { \ 610 unsigned short sel = RestoreOS2FS(); \ 611 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 518 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 612 519 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 613 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh) enter\n", \520 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \ 614 521 pszOdinDebugChannel, \ 615 522 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10));\ 616 CheckFS(sel) \ 617 ODIN_HEAPCHECK(); \ 618 PROFILE_START(#cName) \ 523 FNPROLOGUE(#cName) \ 619 524 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 620 PROFILE_STOP(#cName) \ 621 ODIN_HEAPCHECK(); \ 622 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 623 pszOdinDebugChannel, \ 624 rc)); \ 625 SetFS(sel); \ 525 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 526 pszOdinDebugChannel, \ 527 rc)); \ 528 FNEPILOGUE(#cName) \ 626 529 return rc; \ 627 530 } \ … … 633 536 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 634 537 { \ 635 unsigned short sel = RestoreOS2FS(); \ 636 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 538 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 637 539 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 638 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh) enter\n", \540 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh)", \ 639 541 pszOdinDebugChannel, \ 640 542 a1,a2,a3)); \ 641 CheckFS(sel) \ 642 ODIN_HEAPCHECK(); \ 643 PROFILE_START(#cName) \ 543 FNPROLOGUE(#cName) \ 644 544 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 645 PROFILE_STOP(#cName) \ 646 ODIN_HEAPCHECK(); \ 647 dprintf(("%s: void "#cName"() leave\n", \ 648 pszOdinDebugChannel)); \ 649 SetFS(sel); \ 545 dprintf(("%s: void "#cName"() leave\n", \ 546 pszOdinDebugChannel)); \ 547 FNEPILOGUE \ 650 548 } \ 651 549 \ … … 658 556 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) \ 659 557 { \ 660 unsigned short sel = RestoreOS2FS(); \ 661 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 558 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 662 559 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 663 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh) enter\n", \560 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \ 664 561 pszOdinDebugChannel, \ 665 562 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \ 666 CheckFS(sel) \ 667 ODIN_HEAPCHECK(); \ 668 PROFILE_START(#cName) \ 563 FNPROLOGUE(#cName) \ 669 564 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 670 PROFILE_STOP(#cName) \ 671 ODIN_HEAPCHECK(); \ 672 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 673 pszOdinDebugChannel, \ 674 rc)); \ 675 SetFS(sel); \ 565 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 566 pszOdinDebugChannel, \ 567 rc)); \ 568 FNEPILOGUE(#cName) \ 676 569 return rc; \ 677 570 } \ … … 683 576 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) \ 684 577 { \ 685 unsigned short sel = RestoreOS2FS(); \ 686 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 578 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 687 579 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 688 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh) enter\n", \580 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh)", \ 689 581 pszOdinDebugChannel, \ 690 582 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)); \ 691 CheckFS(sel) \ 692 ODIN_HEAPCHECK(); \ 693 PROFILE_START(#cName) \ 583 FNPROLOGUE(#cName) \ 694 584 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 695 PROFILE_STOP(#cName) \ 696 ODIN_HEAPCHECK(); \ 697 dprintf(("%s: void "#cName"() leave\n", \ 698 pszOdinDebugChannel)); \ 699 SetFS(sel); \ 585 dprintf(("%s: void "#cName"() leave\n", \ 586 pszOdinDebugChannel)); \ 587 FNEPILOGUE \ 700 588 } \ 701 589 \ … … 708 596 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) \ 709 597 { \ 710 unsigned short sel = RestoreOS2FS(); \ 711 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 598 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 712 599 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 713 600 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 714 ", "#t12" "#a12"=%08xh) enter\n", \601 ", "#t12" "#a12"=%08xh)", \ 715 602 pszOdinDebugChannel, \ 716 603 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \ 717 CheckFS(sel) \ 718 ODIN_HEAPCHECK(); \ 719 PROFILE_START(#cName) \ 604 FNPROLOGUE(#cName) \ 720 605 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 721 PROFILE_STOP(#cName) \ 722 ODIN_HEAPCHECK(); \ 723 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 724 pszOdinDebugChannel, \ 725 rc)); \ 726 SetFS(sel); \ 606 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 607 pszOdinDebugChannel, \ 608 rc)); \ 609 FNEPILOGUE(#cName) \ 727 610 return rc; \ 728 611 } \ … … 734 617 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) \ 735 618 { \ 736 unsigned short sel = RestoreOS2FS(); \ 737 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 619 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 738 620 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 739 621 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 740 ", "#t12" "#a12"=%08xh) enter\n", \622 ", "#t12" "#a12"=%08xh)", \ 741 623 pszOdinDebugChannel, \ 742 624 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)); \ 743 CheckFS(sel) \ 744 ODIN_HEAPCHECK(); \ 745 PROFILE_START(#cName) \ 625 FNPROLOGUE(#cName) \ 746 626 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 747 PROFILE_STOP(#cName) \ 748 ODIN_HEAPCHECK(); \ 749 dprintf(("%s: void "#cName"() leave\n", \ 750 pszOdinDebugChannel)); \ 751 SetFS(sel); \ 627 dprintf(("%s: void "#cName"() leave\n", \ 628 pszOdinDebugChannel)); \ 629 FNEPILOGUE \ 752 630 } \ 753 631 \ … … 760 638 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) \ 761 639 { \ 762 unsigned short sel = RestoreOS2FS(); \ 763 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 640 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 764 641 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 765 642 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 766 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh) enter\n", \643 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh)", \ 767 644 pszOdinDebugChannel, \ 768 645 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \ 769 CheckFS(sel) \ 770 ODIN_HEAPCHECK(); \ 771 PROFILE_START(#cName) \ 646 FNPROLOGUE(#cName) \ 772 647 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \ 773 PROFILE_STOP(#cName) \ 774 ODIN_HEAPCHECK(); \ 775 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 776 pszOdinDebugChannel, \ 777 rc)); \ 778 SetFS(sel); \ 648 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 649 pszOdinDebugChannel, \ 650 rc)); \ 651 FNEPILOGUE(#cName) \ 779 652 return rc; \ 780 653 } \ … … 786 659 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) \ 787 660 { \ 788 unsigned short sel = RestoreOS2FS(); \ 789 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 661 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 790 662 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 791 663 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 792 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, ) enter\n", \664 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, )", \ 793 665 pszOdinDebugChannel, \ 794 666 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)); \ 795 CheckFS(sel) \ 796 ODIN_HEAPCHECK(); \ 797 PROFILE_START(#cName) \ 667 FNPROLOGUE(#cName) \ 798 668 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \ 799 PROFILE_STOP(#cName) \ 800 ODIN_HEAPCHECK(); \ 801 dprintf(("%s: void "#cName"() leave\n", \ 802 pszOdinDebugChannel)); \ 803 SetFS(sel); \ 669 dprintf(("%s: void "#cName"() leave\n", \ 670 pszOdinDebugChannel)); \ 671 FNEPILOGUE \ 804 672 } \ 805 673 \ … … 812 680 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) \ 813 681 { \ 814 unsigned short sel = RestoreOS2FS(); \ 815 dprintf(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 682 dprintfNoEOL(("%s: "#cRet" "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 816 683 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 817 684 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 818 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh) enter\n", \685 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \ 819 686 pszOdinDebugChannel, \ 820 687 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \ 821 CheckFS(sel) \ 822 ODIN_HEAPCHECK(); \ 823 PROFILE_START(#cName) \ 688 FNPROLOGUE(#cName) \ 824 689 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \ 825 ODIN_HEAPCHECK(); \ 826 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 827 pszOdinDebugChannel, \ 828 rc)); \ 829 SetFS(sel); \ 690 dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \ 691 pszOdinDebugChannel, \ 692 rc)); \ 693 FNEPILOGUE(#cName) \ 830 694 return rc; \ 831 695 } \ … … 837 701 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) \ 838 702 { \ 839 unsigned short sel = RestoreOS2FS(); \ 840 dprintf(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 703 dprintfNoEOL(("%s: void "#cName"("#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \ 841 704 ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh, "#t7" "#a7"=%08xh" \ 842 705 ", "#t8" "#a8"=%08xh, "#t9" "#a9"=%08xh, "#t10" "#a10"=%08xh, "#t11" "#a11"=%08xh" \ 843 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh) enter\n", \706 ", "#t12" "#a12"=%08xh, "#t13" "#a13"=%08xh, "#t14" "#a14"=%08xh)", \ 844 707 pszOdinDebugChannel, \ 845 708 a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)); \ 846 CheckFS(sel) \ 847 ODIN_HEAPCHECK(); \ 848 PROFILE_START(#cName) \ 709 FNPROLOGUE(#cName) \ 849 710 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \ 850 PROFILE_STOP(#cName) \ 851 ODIN_HEAPCHECK(); \ 852 dprintf(("%s: void "#cName"() leave\n", \ 853 pszOdinDebugChannel)); \ 854 SetFS(sel); \ 711 dprintf(("%s: void "#cName"() leave\n", \ 712 pszOdinDebugChannel)); \ 713 FNEPILOGUE \ 855 714 } \ 856 715 \ … … 864 723 ****************************************************************************/ 865 724 866 /* ---------- 0 parameters ---------- */ 867 #define ODINFUNCTION0(cRet,cName) \ 868 cRet ODIN_INTERNAL ODIN_##cName (void);\ 869 cRet WINAPI cName(void) \ 870 { \ 871 unsigned short sel = RestoreOS2FS(); \ 872 cRet rc = ODIN_##cName(); \ 873 SetFS(sel); \ 874 return rc; \ 875 } \ 876 \ 877 cRet ODIN_INTERNAL ODIN_##cName (void) 878 879 880 #define ODINPROCEDURE0(cName) \ 881 void ODIN_INTERNAL ODIN_##cName (void);\ 882 void WINAPI cName(void) \ 883 { \ 884 unsigned short sel = RestoreOS2FS(); \ 885 ODIN_##cName(); \ 886 SetFS(sel); \ 887 } \ 888 \ 889 void ODIN_INTERNAL ODIN_##cName (void) 890 891 892 /* ---------- 1 parameters ---------- */ 893 #define ODINFUNCTION1(cRet,cName,t1,a1) \ 894 cRet ODIN_INTERNAL ODIN_##cName (t1 a1);\ 895 cRet WINAPI cName(t1 a1) \ 896 { \ 897 unsigned short sel = RestoreOS2FS(); \ 898 cRet rc = ODIN_##cName(a1); \ 899 SetFS(sel); \ 900 return rc; \ 901 } \ 902 \ 903 cRet ODIN_INTERNAL ODIN_##cName (t1 a1) 904 905 #define ODINPROCEDURE1(cName,t1,a1) \ 906 void ODIN_INTERNAL ODIN_##cName (t1 a1);\ 907 void WINAPI cName(t1 a1) \ 908 { \ 909 unsigned short sel = RestoreOS2FS(); \ 910 ODIN_##cName(a1); \ 911 SetFS(sel); \ 912 } \ 913 \ 914 void ODIN_INTERNAL ODIN_##cName (t1 a1) 915 916 917 /* ---------- 2 parameters ---------- */ 918 #define ODINFUNCTION2(cRet,cName,t1,a1,t2,a2) \ 919 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \ 920 cRet WINAPI cName(t1 a1,t2 a2) \ 921 { \ 922 unsigned short sel = RestoreOS2FS(); \ 923 cRet rc = ODIN_##cName(a1,a2); \ 924 SetFS(sel); \ 925 return rc; \ 926 } \ 927 \ 928 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2) 929 930 #define ODINPROCEDURE2(cName,t1,a1,t2,a2) \ 931 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2);\ 932 void WINAPI cName(t1 a1,t2 a2) \ 933 { \ 934 unsigned short sel = RestoreOS2FS(); \ 935 ODIN_##cName(a1,a2); \ 936 SetFS(sel); \ 937 } \ 938 \ 939 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2) 940 941 942 /* ---------- 3 parameters ---------- */ 943 #define ODINFUNCTION3(cRet,cName,t1,a1,t2,a2,t3,a3) \ 944 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \ 945 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \ 946 { \ 947 unsigned short sel = RestoreOS2FS(); \ 948 cRet rc = ODIN_##cName(a1,a2,a3); \ 949 SetFS(sel); \ 950 return rc; \ 951 } \ 952 \ 953 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3) 954 955 #define ODINPROCEDURE3(cName,t1,a1,t2,a2,t3,a3) \ 956 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \ 957 void WINAPI cName(t1 a1,t2 a2,t3 a3) \ 958 { \ 959 unsigned short sel = RestoreOS2FS(); \ 960 ODIN_##cName(a1,a2,a3); \ 961 SetFS(sel); \ 962 } \ 963 \ 964 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3) 965 966 967 /* ---------- 4 parameters ---------- */ 968 #define ODINFUNCTION4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \ 969 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \ 970 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 971 { \ 972 unsigned short sel = RestoreOS2FS(); \ 973 cRet rc = ODIN_##cName(a1,a2,a3,a4); \ 974 SetFS(sel); \ 975 return rc; \ 976 } \ 977 \ 978 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4) 979 980 #define ODINPROCEDURE4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \ 981 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \ 982 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 983 { \ 984 unsigned short sel = RestoreOS2FS(); \ 985 ODIN_##cName(a1,a2,a3,a4); \ 986 SetFS(sel); \ 987 } \ 988 \ 989 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4) 990 991 992 /* ---------- 5 parameters ---------- */ 993 #define ODINFUNCTION5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \ 994 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \ 995 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 996 { \ 997 unsigned short sel = RestoreOS2FS(); \ 998 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5); \ 999 SetFS(sel); \ 1000 return rc; \ 1001 } \ 1002 \ 1003 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) 1004 1005 #define ODINPROCEDURE5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \ 1006 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \ 1007 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 1008 { \ 1009 unsigned short sel = RestoreOS2FS(); \ 1010 ODIN_##cName(a1,a2,a3,a4,a5); \ 1011 SetFS(sel); \ 1012 } \ 1013 \ 1014 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) 1015 1016 1017 /* ---------- 6 parameters ---------- */ 1018 #define ODINFUNCTION6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \ 1019 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \ 1020 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 1021 { \ 1022 unsigned short sel = RestoreOS2FS(); \ 1023 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 1024 SetFS(sel); \ 1025 return rc; \ 1026 } \ 1027 \ 1028 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) 1029 1030 1031 // @@@PH 1999/12/28 the following macro is a workaround for WINMM:waveOutOpen 1032 // where the system needs to know about the win32 tib fs selector 1033 #define ODINFUNCTION6FS(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \ 1034 cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \ 1035 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 1036 { \ 1037 unsigned short sel = RestoreOS2FS(); \ 1038 cRet rc = ODIN_##cName(sel,a1,a2,a3,a4,a5,a6); \ 1039 SetFS(sel); \ 1040 return rc; \ 1041 } \ 1042 \ 1043 cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) 1044 1045 1046 #define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \ 1047 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \ 1048 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 1049 { \ 1050 unsigned short sel = RestoreOS2FS(); \ 1051 ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 1052 SetFS(sel); \ 1053 } \ 1054 \ 1055 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) 1056 1057 1058 /* ---------- 7 parameters ---------- */ 1059 #define ODINFUNCTION7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \ 1060 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \ 1061 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 1062 { \ 1063 unsigned short sel = RestoreOS2FS(); \ 1064 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 1065 SetFS(sel); \ 1066 return rc; \ 1067 } \ 1068 \ 1069 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) 1070 1071 #define ODINPROCEDURE7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \ 1072 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \ 1073 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 1074 { \ 1075 unsigned short sel = RestoreOS2FS(); \ 1076 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 1077 SetFS(sel); \ 1078 } \ 1079 \ 1080 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) 1081 1082 1083 /* ---------- 8 parameters ---------- */ 1084 #define ODINFUNCTION8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \ 1085 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \ 1086 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 1087 { \ 1088 unsigned short sel = RestoreOS2FS(); \ 1089 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 1090 SetFS(sel); \ 1091 return rc; \ 1092 } \ 1093 \ 1094 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) 1095 1096 #define ODINPROCEDURE8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \ 1097 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \ 1098 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 1099 { \ 1100 unsigned short sel = RestoreOS2FS(); \ 1101 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 1102 SetFS(sel); \ 1103 } \ 1104 \ 1105 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) 1106 1107 1108 /* ---------- 9 parameters ---------- */ 1109 #define ODINFUNCTION9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \ 1110 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \ 1111 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 1112 { \ 1113 unsigned short sel = RestoreOS2FS(); \ 1114 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 1115 SetFS(sel); \ 1116 return rc; \ 1117 } \ 1118 \ 1119 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) 1120 1121 #define ODINPROCEDURE9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \ 1122 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \ 1123 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 1124 { \ 1125 unsigned short sel = RestoreOS2FS(); \ 1126 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 1127 SetFS(sel); \ 1128 } \ 1129 \ 1130 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) 1131 1132 1133 /* ---------- 10 parameters ---------- */ 1134 #define ODINFUNCTION10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \ 1135 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); \ 1136 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 1137 { \ 1138 unsigned short sel = RestoreOS2FS(); \ 1139 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 1140 SetFS(sel); \ 1141 return rc; \ 1142 } \ 1143 \ 1144 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) 1145 1146 #define ODINPROCEDURE10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \ 1147 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); \ 1148 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 1149 { \ 1150 unsigned short sel = RestoreOS2FS(); \ 1151 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 1152 SetFS(sel); \ 1153 } \ 1154 \ 1155 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) 1156 1157 1158 /* ---------- 11 parameters ---------- */ 1159 #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) \ 1160 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); \ 1161 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) \ 1162 { \ 1163 unsigned short sel = RestoreOS2FS(); \ 1164 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 1165 SetFS(sel); \ 1166 return rc; \ 1167 } \ 1168 \ 1169 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) 1170 1171 #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) \ 1172 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); \ 1173 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) \ 1174 { \ 1175 unsigned short sel = RestoreOS2FS(); \ 1176 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 1177 SetFS(sel); \ 1178 } \ 1179 \ 1180 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) 1181 1182 1183 /* ---------- 12 parameters ---------- */ 1184 #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) \ 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); \ 1186 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) \ 1187 { \ 1188 unsigned short sel = RestoreOS2FS(); \ 1189 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 1190 SetFS(sel); \ 1191 return rc; \ 1192 } \ 1193 \ 1194 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) 1195 1196 #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) \ 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); \ 1198 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) \ 1199 { \ 1200 unsigned short sel = RestoreOS2FS(); \ 1201 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 1202 SetFS(sel); \ 1203 } \ 1204 \ 1205 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) 1206 1207 725 #define ODINFUNCTION0 ODINFUNCTIONNODBG0 726 #define ODINFUNCTION1 ODINFUNCTIONNODBG0 727 #define ODINFUNCTION2 ODINFUNCTIONNODBG1 728 #define ODINFUNCTION3 ODINFUNCTIONNODBG2 729 #define ODINFUNCTION4 ODINFUNCTIONNODBG3 730 #define ODINFUNCTION5 ODINFUNCTIONNODBG4 731 #define ODINFUNCTION6 ODINFUNCTIONNODBG5 732 #define ODINFUNCTION7 ODINFUNCTIONNODBG6 733 #define ODINFUNCTION8 ODINFUNCTIONNODBG7 734 #define ODINFUNCTION9 ODINFUNCTIONNODBG8 735 #define ODINFUNCTION10 ODINFUNCTIONNODBG10 736 #define ODINFUNCTION11 ODINFUNCTIONNODBG11 737 #define ODINFUNCTION12 ODINFUNCTIONNODBG12 738 #define ODINFUNCTION13 ODINFUNCTIONNODBG13 739 #define ODINFUNCTION14 ODINFUNCTIONNODBG14 740 741 #define ODINPROCEDURE0 ODINPROCEDURENODBG0 742 #define ODINPROCEDURE1 ODINPROCEDURENODBG0 743 #define ODINPROCEDURE2 ODINPROCEDURENODBG1 744 #define ODINPROCEDURE3 ODINPROCEDURENODBG2 745 #define ODINPROCEDURE4 ODINPROCEDURENODBG3 746 #define ODINPROCEDURE5 ODINPROCEDURENODBG4 747 #define ODINPROCEDURE6 ODINPROCEDURENODBG5 748 #define ODINPROCEDURE7 ODINPROCEDURENODBG6 749 #define ODINPROCEDURE8 ODINPROCEDURENODBG7 750 #define ODINPROCEDURE9 ODINPROCEDURENODBG8 751 #define ODINPROCEDURE10 ODINPROCEDURENODBG10 752 #define ODINPROCEDURE11 ODINPROCEDURENODBG11 753 #define ODINPROCEDURE12 ODINPROCEDURENODBG12 754 #define ODINPROCEDURE13 ODINPROCEDURENODBG13 755 #define ODINPROCEDURE14 ODINPROCEDURENODBG14 1208 756 1209 757 #endif … … 1214 762 1215 763 /* ---------- 0 parameters ---------- */ 1216 #define ODINFUNCTIONNODBG0(cRet,cName) \ 1217 cRet ODIN_INTERNAL ODIN_##cName (void);\ 1218 cRet WINAPI cName(void) \ 1219 { \ 1220 unsigned short sel = RestoreOS2FS(); \ 1221 cRet rc = ODIN_##cName(); \ 1222 SetFS(sel); \ 1223 return rc; \ 1224 } \ 1225 \ 1226 cRet ODIN_INTERNAL ODIN_##cName (void) 1227 1228 1229 #define ODINPROCEDURENODBG0(cName) \ 1230 void ODIN_INTERNAL ODIN_##cName (void);\ 1231 void WINAPI cName(void) \ 1232 { \ 1233 unsigned short sel = RestoreOS2FS(); \ 1234 ODIN_##cName(); \ 1235 SetFS(sel); \ 1236 } \ 1237 \ 1238 void ODIN_INTERNAL ODIN_##cName (void) 1239 764 #define ODINFUNCTIONNODBG0(cRet,cName) cRet WINAPI cName(void) 765 #define ODINPROCEDURENODBG0(cName) void WINAPI cName(void) 1240 766 1241 767 /* ---------- 1 parameters ---------- */ 1242 #define ODINFUNCTIONNODBG1(cRet,cName,t1,a1) \ 1243 cRet ODIN_INTERNAL ODIN_##cName (t1 a1);\ 1244 cRet WINAPI cName(t1 a1) \ 1245 { \ 1246 unsigned short sel = RestoreOS2FS(); \ 1247 cRet rc = ODIN_##cName(a1); \ 1248 SetFS(sel); \ 1249 return rc; \ 1250 } \ 1251 \ 1252 cRet ODIN_INTERNAL ODIN_##cName (t1 a1) 1253 1254 #define ODINPROCEDURENODBG1(cName,t1,a1) \ 1255 void ODIN_INTERNAL ODIN_##cName (t1 a1);\ 1256 void WINAPI cName(t1 a1) \ 1257 { \ 1258 unsigned short sel = RestoreOS2FS(); \ 1259 ODIN_##cName(a1); \ 1260 SetFS(sel); \ 1261 } \ 1262 \ 1263 void ODIN_INTERNAL ODIN_##cName (t1 a1) 1264 768 #define ODINFUNCTIONNODBG1(cRet,cName,t1,a1) cRet WINAPI cName(t1 a1) 769 #define ODINPROCEDURENODBG1(cName,t1,a1) void WINAPI cName(t1 a1) 1265 770 1266 771 /* ---------- 2 parameters ---------- */ 1267 #define ODINFUNCTIONNODBG2(cRet,cName,t1,a1,t2,a2) \ 1268 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2); \ 1269 cRet WINAPI cName(t1 a1,t2 a2) \ 1270 { \ 1271 unsigned short sel = RestoreOS2FS(); \ 1272 cRet rc = ODIN_##cName(a1,a2); \ 1273 SetFS(sel); \ 1274 return rc; \ 1275 } \ 1276 \ 1277 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2) 1278 1279 #define ODINPROCEDURENODBG2(cName,t1,a1,t2,a2) \ 1280 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2);\ 1281 void WINAPI cName(t1 a1,t2 a2) \ 1282 { \ 1283 unsigned short sel = RestoreOS2FS(); \ 1284 ODIN_##cName(a1,a2); \ 1285 SetFS(sel); \ 1286 } \ 1287 \ 1288 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2) 1289 772 #define ODINFUNCTIONNODBG2(cRet,cName,t1,a1,t2,a2) cRet WINAPI cName(t1 a1,t2 a2) 773 #define ODINPROCEDURENODBG2(cName,t1,a1,t2,a2) void WINAPI cName(t1 a1,t2 a2) 1290 774 1291 775 /* ---------- 3 parameters ---------- */ 1292 #define ODINFUNCTIONNODBG3(cRet,cName,t1,a1,t2,a2,t3,a3) \ 1293 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \ 1294 cRet WINAPI cName(t1 a1,t2 a2,t3 a3) \ 1295 { \ 1296 unsigned short sel = RestoreOS2FS(); \ 1297 cRet rc = ODIN_##cName(a1,a2,a3); \ 1298 SetFS(sel); \ 1299 return rc; \ 1300 } \ 1301 \ 1302 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3) 1303 1304 #define ODINPROCEDURENODBG3(cName,t1,a1,t2,a2,t3,a3) \ 1305 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3); \ 1306 void WINAPI cName(t1 a1,t2 a2,t3 a3) \ 1307 { \ 1308 unsigned short sel = RestoreOS2FS(); \ 1309 ODIN_##cName(a1,a2,a3); \ 1310 SetFS(sel); \ 1311 } \ 1312 \ 1313 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3) 1314 776 #define ODINFUNCTIONNODBG3(cRet,cName,t1,a1,t2,a2,t3,a3) cRet WINAPI cName(t1 a1,t2 a2,t3 a3) 777 #define ODINPROCEDURENODBG3(cName,t1,a1,t2,a2,t3,a3) void WINAPI cName(t1 a1,t2 a2,t3 a3) 1315 778 1316 779 /* ---------- 4 parameters ---------- */ 1317 #define ODINFUNCTIONNODBG4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) \ 1318 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \ 1319 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 1320 { \ 1321 unsigned short sel = RestoreOS2FS(); \ 1322 cRet rc = ODIN_##cName(a1,a2,a3,a4); \ 1323 SetFS(sel); \ 1324 return rc; \ 1325 } \ 1326 \ 1327 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4) 1328 1329 #define ODINPROCEDURENODBG4(cName,t1,a1,t2,a2,t3,a3,t4,a4) \ 1330 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4); \ 1331 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) \ 1332 { \ 1333 unsigned short sel = RestoreOS2FS(); \ 1334 ODIN_##cName(a1,a2,a3,a4); \ 1335 SetFS(sel); \ 1336 } \ 1337 \ 1338 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4) 1339 780 #define ODINFUNCTIONNODBG4(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4) cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) 781 #define ODINPROCEDURENODBG4(cName,t1,a1,t2,a2,t3,a3,t4,a4) void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4) 1340 782 1341 783 /* ---------- 5 parameters ---------- */ 1342 #define ODINFUNCTIONNODBG5(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \ 1343 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \ 1344 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 1345 { \ 1346 unsigned short sel = RestoreOS2FS(); \ 1347 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5); \ 1348 SetFS(sel); \ 1349 return rc; \ 1350 } \ 1351 \ 1352 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) 1353 1354 #define ODINPROCEDURENODBG5(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \ 1355 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5); \ 1356 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) \ 1357 { \ 1358 unsigned short sel = RestoreOS2FS(); \ 1359 ODIN_##cName(a1,a2,a3,a4,a5); \ 1360 SetFS(sel); \ 1361 } \ 1362 \ 1363 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5) 1364 784 #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) 785 #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) 1365 786 1366 787 /* ---------- 6 parameters ---------- */ 1367 #define ODINFUNCTIONNODBG6(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \ 1368 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \ 1369 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 1370 { \ 1371 unsigned short sel = RestoreOS2FS(); \ 1372 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 1373 SetFS(sel); \ 1374 return rc; \ 1375 } \ 1376 \ 1377 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) 1378 1379 #define ODINPROCEDURENODBG6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6) \ 1380 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6); \ 1381 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) \ 1382 { \ 1383 unsigned short sel = RestoreOS2FS(); \ 1384 ODIN_##cName(a1,a2,a3,a4,a5,a6); \ 1385 SetFS(sel); \ 1386 } \ 1387 \ 1388 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6) 1389 788 #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) 789 #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) 1390 790 1391 791 /* ---------- 7 parameters ---------- */ 1392 #define ODINFUNCTIONNODBG7(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \ 1393 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \ 1394 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 1395 { \ 1396 unsigned short sel = RestoreOS2FS(); \ 1397 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 1398 SetFS(sel); \ 1399 return rc; \ 1400 } \ 1401 \ 1402 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) 1403 1404 #define ODINPROCEDURENODBG7(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \ 1405 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7); \ 1406 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) \ 1407 { \ 1408 unsigned short sel = RestoreOS2FS(); \ 1409 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7); \ 1410 SetFS(sel); \ 1411 } \ 1412 \ 1413 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7) 1414 792 #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) 793 #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) 1415 794 1416 795 /* ---------- 8 parameters ---------- */ 1417 #define ODINFUNCTIONNODBG8(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \ 1418 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \ 1419 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 1420 { \ 1421 unsigned short sel = RestoreOS2FS(); \ 1422 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 1423 SetFS(sel); \ 1424 return rc; \ 1425 } \ 1426 \ 1427 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) 1428 1429 #define ODINPROCEDURENODBG8(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8) \ 1430 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8); \ 1431 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) \ 1432 { \ 1433 unsigned short sel = RestoreOS2FS(); \ 1434 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8); \ 1435 SetFS(sel); \ 1436 } \ 1437 \ 1438 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8) 1439 796 #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) 797 #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) 1440 798 1441 799 /* ---------- 9 parameters ---------- */ 1442 #define ODINFUNCTIONNODBG9(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \ 1443 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \ 1444 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 1445 { \ 1446 unsigned short sel = RestoreOS2FS(); \ 1447 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 1448 SetFS(sel); \ 1449 return rc; \ 1450 } \ 1451 \ 1452 cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) 1453 1454 #define ODINPROCEDURENODBG9(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9) \ 1455 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9); \ 1456 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) \ 1457 { \ 1458 unsigned short sel = RestoreOS2FS(); \ 1459 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9); \ 1460 SetFS(sel); \ 1461 } \ 1462 \ 1463 void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9) 1464 800 #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) 801 #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) 1465 802 1466 803 /* ---------- 10 parameters ---------- */ 1467 #define ODINFUNCTIONNODBG10(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \ 1468 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); \ 1469 cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 1470 { \ 1471 unsigned short sel = RestoreOS2FS(); \ 1472 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 1473 SetFS(sel); \ 1474 return rc; \ 1475 } \ 1476 \ 1477 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) 1478 1479 #define ODINPROCEDURENODBG10(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7,t8,a8,t9,a9,t10,a10) \ 1480 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); \ 1481 void WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6,t7 a7,t8 a8,t9 a9,t10 a10) \ 1482 { \ 1483 unsigned short sel = RestoreOS2FS(); \ 1484 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); \ 1485 SetFS(sel); \ 1486 } \ 1487 \ 1488 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) 1489 804 #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) 805 #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) 1490 806 1491 807 /* ---------- 11 parameters ---------- */ 1492 #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) \ 1493 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); \ 1494 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) \ 1495 { \ 1496 unsigned short sel = RestoreOS2FS(); \ 1497 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 1498 SetFS(sel); \ 1499 return rc; \ 1500 } \ 1501 \ 1502 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) 1503 1504 #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) \ 1505 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); \ 1506 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) \ 1507 { \ 1508 unsigned short sel = RestoreOS2FS(); \ 1509 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); \ 1510 SetFS(sel); \ 1511 } \ 1512 \ 1513 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) 1514 808 #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) 809 #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) 1515 810 1516 811 /* ---------- 12 parameters ---------- */ 1517 #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) \ 1518 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); \ 1519 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) \ 1520 { \ 1521 unsigned short sel = RestoreOS2FS(); \ 1522 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 1523 SetFS(sel); \ 1524 return rc; \ 1525 } \ 1526 \ 1527 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) 1528 1529 #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) \ 1530 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); \ 1531 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) \ 1532 { \ 1533 unsigned short sel = RestoreOS2FS(); \ 1534 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); \ 1535 SetFS(sel); \ 1536 } \ 1537 \ 1538 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) 1539 812 #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) 813 #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) 1540 814 1541 815 /* ---------- 13 parameters ---------- */ 1542 816 #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) \ 1543 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); \ 1544 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) \ 1545 { \ 1546 unsigned short sel = RestoreOS2FS(); \ 1547 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \ 1548 SetFS(sel); \ 1549 return rc; \ 1550 } \ 1551 \ 1552 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) 817 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) 1553 818 1554 819 #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) \ 1555 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); \ 1556 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) \ 1557 { \ 1558 unsigned short sel = RestoreOS2FS(); \ 1559 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); \ 1560 SetFS(sel); \ 1561 } \ 1562 \ 1563 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) 1564 820 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) 1565 821 1566 822 /* ---------- 14 parameters ---------- */ 1567 823 #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) \ 1568 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); \ 1569 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) \ 1570 { \ 1571 unsigned short sel = RestoreOS2FS(); \ 1572 cRet rc = ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \ 1573 SetFS(sel); \ 1574 return rc; \ 1575 } \ 1576 \ 1577 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) 824 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) 1578 825 1579 826 #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) \ 1580 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); \ 1581 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) \ 1582 { \ 1583 unsigned short sel = RestoreOS2FS(); \ 1584 ODIN_##cName(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); \ 1585 SetFS(sel); \ 1586 } \ 1587 \ 1588 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) 827 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) 1589 828 1590 829
Note:
See TracChangeset
for help on using the changeset viewer.