Ignore:
Timestamp:
Dec 29, 1999, 9:32:00 AM (26 years ago)
Author:
phaller
Message:

Add: ODINFUNCTION6FS macro to save FS selector

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/odinwrap.h

    r1953 r2241  
    1 /* $Id: odinwrap.h,v 1.17 1999-12-03 01:20:02 phaller Exp $ */
     1/* $Id: odinwrap.h,v 1.18 1999-12-29 08:32:00 phaller Exp $ */
    22
    33/*
     
    340340  cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
    341341
     342// @@@PH 1999/12/28 the following macro is a workaround for WINMM:waveOutOpen
     343// where the system needs to know about the win32 tib fs selector
     344#define ODINFUNCTION6FS(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6)  \
     345  cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6);      \
     346  cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)        \
     347  {                               \
     348    unsigned short sel = RestoreOS2FS();  \
     349    dprintf(("%s: "#cRet" "#cName"(selFS=%04xh, "#t1" "#a1"=%08xh, "#t2" "#a2"=%08xh, "#t3" "#a3"=%08xh)" \
     350             ", "#t4" "#a4"=%08xh, "#t5" "#a5"=%08xh, "#t6" "#a6"=%08xh) enter\n", \
     351             pszOdinDebugChannel,             \
     352             sel,                             \
     353             a1,a2,a3,a4,a5,a6));             \
     354    CheckFS(sel)                              \
     355    _heap_check();                            \
     356    cRet   rc  = ODIN_##cName(sel,a1,a2,a3,a4,a5,a6); \
     357    _heap_check();                            \
     358    dprintf(("%s: "#cRet" "#cName"() leave = %08xh\n", \
     359             pszOdinDebugChannel,             \
     360             rc));                            \
     361    SetFS(sel);                   \
     362    return rc;                    \
     363  }                               \
     364                                  \
     365  cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
     366
     367
    342368#define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6)  \
    343369  void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6);  \
     
    903929  cRet ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
    904930
     931
     932// @@@PH 1999/12/28 the following macro is a workaround for WINMM:waveOutOpen
     933// where the system needs to know about the win32 tib fs selector
     934#define ODINFUNCTION6FS(cRet,cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6)  \
     935  cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6);      \
     936  cRet WINAPI cName(t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)        \
     937  {                               \
     938    unsigned short sel = RestoreOS2FS();  \
     939    cRet   rc  = ODIN_##cName(sel,a1,a2,a3,a4,a5,a6); \
     940    SetFS(sel);                   \
     941    return rc;                    \
     942  }                               \
     943                                  \
     944  cRet ODIN_INTERNAL ODIN_##cName (unsigned short selFS, t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6)
     945
     946
    905947#define ODINPROCEDURE6(cName,t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6)  \
    906948  void ODIN_INTERNAL ODIN_##cName (t1 a1,t2 a2,t3 a3,t4 a4,t5 a5,t6 a6);  \
Note: See TracChangeset for help on using the changeset viewer.