home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / trace.h < prev    next >
Text File  |  1998-04-25  |  24KB  |  554 lines

  1. /* trace.h */
  2.  
  3. /*
  4.  * (C) Copyright Microsoft Corporation 1991-1993.
  5.  * All Rights Reserved.
  6.  */
  7.  
  8. #if (defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT))
  9.  #ifndef DONT_INCLUDE_MEMORY_H
  10.   #include <memory.h>
  11.  #endif
  12. #endif
  13.  
  14. #ifdef ASYNCTRACE
  15. #include <dbgtrace.h>
  16. #endif    
  17.  
  18. #ifdef WIN32_SUPPORT
  19. #define sepudcpy(X,Y,Z) memcpy(X,Y,Z)
  20. #endif
  21.  
  22. #ifdef DOS_SUPPORT
  23. extern int _cdecl far com_sprintf( char far *, const char far *, ... );
  24. #define SPRINTF(x)  com_sprintf x;
  25. #else
  26.  #if (defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT))
  27.   /***************************************************************************/
  28.   /* Temporary for Win32: in Win32 DLLs in PDK2, sprintf is not available:   */
  29.   /* use wsprintf instead.                                                   */
  30.   /***************************************************************************/
  31.   #define SPRINTF(x)  wsprintf x;
  32.  #else
  33.   #define SPRINTF(x)  sprintf x;
  34.  #endif
  35. #endif
  36.  
  37. /*****************************************************************************/
  38. /* Comm Server Critical Section macros.                                      */
  39. /*****************************************************************************/
  40. #ifdef WIN32_SUPPORT
  41.  typedef struct cscritsec
  42.  {
  43.    BOOL             Inited;
  44.    CRITICAL_SECTION CritSec;
  45.  } CSCRITSEC;
  46.  
  47.  
  48.  #define CSENTERCRITSEC(x) if (!((x)->Inited))                                \
  49.                              {                                                \
  50.                                InitializeCriticalSection(&((x)->CritSec));    \
  51.                                (x)->Inited = TRUE;                            \
  52.                              }                                                \
  53.                            EnterCriticalSection(&((x)->CritSec))
  54.  
  55.  #define CSEXITCRITSEC(x)  LeaveCriticalSection(&((x)->CritSec))
  56.  
  57.  #define CSLEAVECRITSEC(x)  LeaveCriticalSection(&((x)->CritSec))
  58. #endif
  59.  
  60. /*****************************************************************************/
  61. /* Global flags and variables                                                */
  62. /*****************************************************************************/
  63. #ifdef MSWIN_SUPPORT
  64. #define com_str com_logstr
  65. #endif
  66.  
  67. #ifdef WIN32_SUPPORT
  68.  extern CSCRITSEC crit_comlog;
  69.  extern CSCRITSEC crit_dlbtrc;
  70.  extern CSCRITSEC crit_dlblog;
  71.  extern UCHAR com_str[256];
  72.  extern UCHAR com_logstr[256];
  73. #else
  74.  #ifndef MSWIN_SUPPORT
  75.   extern ULONG  pascal com_trcsem;
  76.   extern ULONG  pascal com_logsem;
  77.   extern ULONG  pascal dlb_logsem;
  78.   extern ULONG  pascal dlb_trcsem;
  79.   extern UCHAR  pascal com_str[256];
  80.  #endif
  81. #endif
  82. #ifndef WIN32_SUPPORT
  83. extern UCHAR pascal com_logstr[256];
  84. #endif
  85.  
  86. /*****************************************************************************/
  87. /* TRACEn macro definitions                                                  */
  88. /*****************************************************************************/
  89. #ifdef NOTRC
  90. #define TRCLVL  20
  91. #else
  92. #   ifndef TRCLVL
  93. #define TRCLVL  0
  94. #   endif
  95. #endif
  96.  
  97. #ifdef WIN32_SUPPORT                                                   /*NTRC*/
  98.  
  99.     #if  (!defined(ASYNCTRACE) || defined(NOTRC) )
  100.         #if TRCLVL < 3                                                        /*NTRC*/
  101.         #define TRACE2() TRACEX(2,(com_mod,  (const UCHAR *)                                /*NTRC*/
  102.         #else                                                                 /*NTRC*/
  103.         #define TRACE2() TRACEZ((                                            /*NTRC*/
  104.         #endif                                                                /*NTRC*/
  105.         #if TRCLVL < 5                                                        /*NTRC*/
  106.         #define TRACE4() TRACEX(4,(com_mod,  (const UCHAR *)                                /*NTRC*/
  107.         #else                                                                 /*NTRC*/
  108.         #define TRACE4() TRACEZ((                                            /*NTRC*/
  109.         #endif                                                                /*NTRC*/
  110.         #if TRCLVL < 7                                                        /*NTRC*/
  111.         #define TRACE6() TRACEX(6,(com_mod,   (const UCHAR *)                               /*NTRC*/
  112.         #else                                                                 /*NTRC*/
  113.         #define TRACE6() TRACEZ((                                            /*NTRC*/
  114.         #endif                                                                /*NTRC*/
  115.         #if TRCLVL < 9                                                        /*NTRC*/
  116.         #define TRACE8() TRACEX(8,(com_mod,   (const UCHAR *)                               /*NTRC*/
  117.         #else                                                                 /*NTRC*/
  118.         #define TRACE8() TRACEZ((                                            /*NTRC*/
  119.         #endif                                                                /*NTRC*/
  120.         #if TRCLVL < 11                                                       /*NTRC*/
  121.         #define TRACE10() TRACEX(10,(com_mod,   (const UCHAR *)                             /*NTRC*/
  122.         #else                                                                 /*NTRC*/
  123.         #define TRACE10() TRACEZ((                                           /*NTRC*/
  124.         #endif                                                                /*NTRC*/
  125.         #if TRCLVL < 13                                                       /*NTRC*/
  126.         #define TRACE12() TRACEX(12,(com_mod,   (const UCHAR *)                             /*NTRC*/
  127.         #else                                                                 /*NTRC*/
  128.         #define TRACE12() TRACEZ((                                           /*NTRC*/
  129.         #endif                                                                /*NTRC*/
  130.         #if TRCLVL < 17                                                       /*NTRC*/
  131.         #define TRACE16() TRACEX(16,(com_mod,  (const UCHAR *)                           /*NTRC*/
  132.         #else                                                                 /*NTRC*/
  133.         #define TRACE16() TRACEZ((                                           /*NTRC*/
  134.         #endif                                                                /*NTRC*/
  135.  
  136.     #else
  137.         #define TRACE2() DEBUGTRACEX(((long)NULL, (const char *)
  138.         #define TRACE4() DEBUGTRACEX(((long)NULL, (const char *)
  139.         
  140.         #define TRACE6()  ERRORTRACEX(((long)NULL, (const char *)
  141.         #define TRACE8()  ERRORTRACEX(((long)NULL, (const char *)
  142.         #define TRACE10() ERRORTRACEX(((long)NULL, (const char *)
  143.     
  144.         #define TRACE12() FATALTRACEX(((long)NULL, (const char *)
  145.         #define TRACE16() FATALTRACEX(((long)NULL, (const char *)
  146.  
  147.         #define DEBUGTRACEX(x)        DebugTrace x
  148.         #define ERRORTRACEX(x)        ErrorTrace x
  149.         #define FATALTRACEX(x)        FatalTrace x
  150.  
  151.  
  152.         #define TRACET(y)                                                                                                                \
  153.                     if (y >= ptrc->intlvl) { SYSTEMTIME st;                  \
  154.                                              GetSystemTime(&st);                              \
  155.                                              SPRINTF((Time_Msg,"Time %2.2hu:%2.2hu.%2.2hu",   \
  156.                                              st.wMinute,                              \
  157.                                              st.wSecond,                              \
  158.                                             (st.wMilliseconds/10)));                 \
  159.                                              DebugTrace(NULL, Time_Msg);            \
  160.                                            }        
  161.     
  162.         #define COM_ENTRY(x) DWORD rc = 0;                                                \
  163.                              DWORD rc2 = 0;                                                \
  164.                              TraceQuietEnter(x)
  165.     #endif
  166.  
  167.  
  168.  
  169.  
  170.  
  171. #else                                                                  /*NTRC*/
  172.  #if TRCLVL < 3
  173.   #define TRACE2() TRACEX(2,(com_str,
  174.  #else                                                                 /*NTRC*/
  175.   #define TRACE2() TRACEZ((
  176.  #endif
  177.  #if TRCLVL < 5
  178.   #define TRACE4() TRACEX(4,(com_str,
  179.  #else
  180.   #define TRACE4() TRACEZ((
  181.  #endif
  182.  #if TRCLVL < 7
  183.   #define TRACE6() TRACEX(6,(com_str,
  184.  #else
  185.   #define TRACE6() TRACEZ((
  186.  #endif
  187.  #if TRCLVL < 9
  188.   #define TRACE8() TRACEX(8,(com_str,
  189.  #else
  190.   #define TRACE8() TRACEZ((
  191.  #endif
  192.  #if TRCLVL < 11
  193.   #define TRACE10() TRACEX(10,(com_str,
  194.  #else
  195.   #define TRACE10() TRACEZ((
  196.  #endif
  197.  #if TRCLVL < 13
  198.   #define TRACE12() TRACEX(12,(com_str,
  199.  #else
  200.   #define TRACE12() TRACEZ((
  201.  #endif
  202.  #if TRCLVL < 17
  203.   #define TRACE16() TRACEX(16,(com_str,
  204.  #else
  205.   #define TRACE16() TRACEZ((
  206.  #endif
  207. #endif                                                                 /*NTRC*/
  208.  
  209. #if TRCLVL < 20
  210.  #ifdef DOS_SUPPORT
  211.   #define TRACEX(w,x)                                                         \
  212.                     if (ptrc && (w >= ptrc->intlvl)) {                        \
  213.                       if (ptrc->nocat)                                        \
  214.                         CMDSemRequest(&com_trcsem,10000);                     \
  215.                       SPRINTF(x);                                             \
  216.                       seputrc(w,com_mod);                                     \
  217.                     }
  218.  #else
  219.   #ifdef MSWIN_SUPPORT
  220.    #define TRACEX(w,x)                                                        \
  221.                       if (ptrc && (w >= ptrc->intlvl)) {                      \
  222.                         SPRINTF(x);                                           \
  223.                         seputrc(w,com_mod,ptrc, com_str);                     \
  224.                       }
  225.   #else
  226.    #ifdef WIN32_SUPPORT
  227.     
  228.     #define TRACEX(w,x) if (w >= ptrc->intlvl) InternalTrace x;        /*NTRC*/
  229.    #else
  230.      #define TRACEX(w,x)                                                       \
  231.                     if (ptrc && (w >= ptrc->intlvl)) {                        \
  232.                       DosSemRequest(&dlb_trcsem,10000L);                      \
  233.                       SPRINTF(x);                                             \
  234.                       seputrc_w(com_str,w,com_mod);                           \
  235.                       DosSemClear(&dlb_trcsem);                               \
  236.                     }
  237.    #endif
  238.   #endif
  239.  #endif
  240. #else
  241.  #define TRACEX(w,x)
  242. #endif
  243. #define TRACEZ(x)
  244.  
  245. #if TRCLVL < 20
  246.  #ifdef DOS_SUPPORT
  247.   #define COM_ENTRY(x) UCHAR com_mod[6];                                      \
  248.                        sepudcpy(com_mod,x,6)
  249.  #else
  250.   #ifdef WIN32_SUPPORT
  251.     #ifndef ASYNCTRACE
  252.         #define COM_ENTRY(x) DWORD rc = 0;                                        \
  253.                              DWORD rc2 = 0;                                     \
  254.                              UCHAR com_mod[6];                                  \
  255.                              sepudcpy(com_mod,x,6)
  256.     #else
  257.         #define COM_ENTRY(x) DWORD rc = 0;                                      \
  258.                              DWORD rc2 = 0;                                        \
  259.                              TraceQuietEnter(x)
  260.     #endif
  261.  
  262.   #else
  263.    #define COM_ENTRY(x) USHORT rc = 0;                                        \
  264.                         UCHAR com_mod[6];                                     \
  265.                         sepudcpy(com_mod,x,6)
  266.   #endif
  267.  #endif
  268. #else
  269.  #ifdef DOS_SUPPORT
  270.   #define COM_ENTRY(x)
  271.  #else
  272.   #ifdef WIN32_SUPPORT
  273.     #ifndef ASYNCTRACE
  274.         #define COM_ENTRY(x) DWORD rc = 0; DWORD rc2=0
  275.     #else
  276.         #define COM_ENTRY(x) DWORD rc = 0;                                      \
  277.                              DWORD rc2 = 0;                                        \
  278.                              TraceQuietEnter(x)
  279.     #endif
  280.   #else
  281.    #define COM_ENTRY(x) USHORT rc = 0;
  282.   #endif
  283.  #endif
  284. #endif
  285.  
  286. #define COM_QUIT goto com_exit
  287. #define COM_EXIT com_exit:
  288. #define COM_EXIT_RC com_exit: return(rc)
  289.  
  290. typedef struct trc {
  291.   USHORT    flags;                   /*0140* Make trace flags 2 bytes        */
  292. #define      DLCMSGS   0x0001        /* NODE TRACE CONTROL                   */
  293. #define      PVIMSGS   0x0002
  294. #define      FMIMSGS   0x0004
  295. #define      OTHMSGS   0x0008
  296. #define      NODEMSGS  0x000F        /* All node messages to be traced       */
  297. #define      SNAMSGS   0x0010        /* User wants DLC as SNA msgs           */
  298. #define      NOSNATRC  0x0020        /* SNA tracing not permitted            */
  299.  
  300. #define      CPICMSGS  0x0040        /* CPIC messages                        */
  301. #define      LUAMSGS   0x0080        /* LUA/RUI trace control                */
  302. #define      HLLMSGS   0x0100        /* API trace control                    */
  303. #define      SRPIMSGS  0x0200
  304. #define      CSVMSGS   0x0400
  305. #define      APPCMSGS  0x0800
  306. #define      APIMSGS   0x0FC0        /*LUA* 0x0F00 -> 0x0F80 due to LUA flag */
  307.                                      /*CPIC*0x0f80 -> 0x0fc0 due to CPIC flag*/
  308.  
  309. #define      LINKMSGS  0x1000        /* Link trace control                   */
  310. #define      NOTRACE   0x2000        /* API tracing not permitted            */
  311.  
  312. #define      ADSTOP    0x4000        /* Stop/Dump options                    */
  313. #define      ADDUMP    0x8000
  314.   UCHAR     audlvl;                  /* Logging level                        */
  315.   USHORT    control;                 /* permission for user to control       */
  316.   USHORT    intlvl;                  /* Internal trace level                 */
  317.   USHORT    nocat;                   /* message concatenation flag           */
  318.   USHORT    apiinit;                 /* api tracing initialised              */
  319.   USHORT    asyinit;                 /* special asynch initialisation flag   */
  320.   USHORT    errinit;
  321.   USHORT    intinit;
  322.   USHORT    snainit;
  323. #if ( defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT) )
  324.   HANDLE    apihand1;                /* handles for various trace files      */
  325.   HANDLE    apihand2;
  326.   HANDLE    audhand;
  327.   HANDLE    errhand;
  328.   HANDLE    inthand1;
  329.   HANDLE    inthand2;
  330.   HANDLE    snahand1;
  331.   HANDLE    snahand2;
  332. #else
  333.   HFILE     apihand1;                /* handles for various trace files      */
  334.   HFILE     apihand2;
  335.   HFILE     audhand;
  336.   HFILE     errhand;
  337.   HFILE     inthand1;
  338.   HFILE     inthand2;
  339.   HFILE     snahand1;
  340.   HFILE     snahand2;
  341. #endif
  342. } TRC;
  343.  
  344. #ifndef WIN32_SUPPORT
  345. extern TRC FAR * pascal ptrc;
  346. #else
  347. extern TRC FAR * ptrc;
  348. #endif
  349.  
  350.  
  351. /*****************************************************************************/
  352. /* COM_LOGn macro definitions                                                */
  353. /*****************************************************************************/
  354. #define COM_LOG6(x)  COM_LOG(6,x,(com_logstr,
  355. #define COM_LOG8(x)  COM_LOG(8,x,(com_logstr,
  356. #define COM_LOG10(x) COM_LOG(10,x,(com_logstr,
  357. #define COM_LOG12(x) COM_LOG(12,x,(com_logstr,
  358. #define COM_LOG16(x) COM_LOG(16,x,(com_logstr,
  359.  
  360. #define COM_MSG6(x)  COM_MSG(6,x)
  361. #define COM_MSG8(x)  COM_MSG(8,x)
  362. #define COM_MSG10(x) COM_MSG(10,x)
  363. #define COM_MSG12(x) COM_MSG(12,x)
  364. #define COM_MSG16(x) COM_MSG(16,x)
  365.  
  366. #define COM_ERR6(x)  COM_LOG(6,x,(com_logstr,"%d",ret))
  367. #define COM_ERR8(x)  COM_LOG(8,x,(com_logstr,"%d",ret))
  368. #define COM_ERR10(x) COM_LOG(10,x,(com_logstr,"%d",ret))
  369. #define COM_ERR12(x) COM_LOG(12,x,(com_logstr,"%d",ret))
  370. #define COM_ERR16(x) COM_LOG(16,x,(com_logstr,"%d",ret))
  371.  
  372. #ifdef DOS_SUPPORT
  373.  #define COM_LOG(v,w,x)                                                       \
  374.                     if (v >= ptrc->audlvl) {                                  \
  375.                       CMDSemRequest(&com_logsem,10000);                       \
  376.                       SPRINTF(x);                                             \
  377.                       sepulog(v,w);                                           \
  378.                     }
  379. #else
  380.  #ifdef MSWIN_SUPPORT
  381.   #define COM_LOG(v,w,x)                                                      \
  382.                         if (v >= ptrc->audlvl) {                              \
  383.                           SPRINTF(x);                                         \
  384.                           sepulog(v,w,ptrc, com_logstr);                      \
  385.                         }
  386.  #else
  387.   #ifndef WIN32_SUPPORT
  388.    #define COM_LOG(v,w,x)                                                     \
  389.                        if (v >= ptrc->audlvl) {                               \
  390.                          DosSemRequest(&dlb_logsem,10000L);                   \
  391.                          SPRINTF(x);                                          \
  392.                          sepulog_w(com_logstr,v,w);                           \
  393.                          DosSemClear(&dlb_logsem);                            \
  394.                        }
  395.   #else
  396.    #define COM_LOG(v,w,x)                                                     \
  397.                        if (v >= ptrc->audlvl) {                               \
  398.                          CSENTERCRITSEC(&crit_dlblog);                        \
  399.                          SPRINTF(x);                                          \
  400.                          sepulog_w(com_logstr,v,w);                           \
  401.                          CSEXITCRITSEC(&crit_dlblog);                         \
  402.                        }
  403.   #endif
  404.  #endif
  405.  #ifdef WIN32_SUPPORT
  406.   #define COM_MSG(v,w)                                                        \
  407.                       if (v >= ptrc->audlvl) {                                \
  408.                         CSENTERCRITSEC(&crit_dlblog);                         \
  409.                         sepulog_w(com_logstr,v,w);                            \
  410.                         CSEXITCRITSEC(&crit_dlblog);                          \
  411.                       }
  412.  #else
  413.   #define COM_MSG(v,w)                                                        \
  414.                       if (v >= ptrc->audlvl) {                                \
  415.                         DosSemRequest(&dlb_logsem,10000L);                    \
  416.                         sepulog_w(com_logstr,v,w);                            \
  417.                         DosSemClear(&dlb_logsem);                             \
  418.                       }
  419.  #endif
  420. /* Parameters are message #, target m/c                                      */
  421.  #define COM_ALERT(x,y) COM_ALERTX(x,y,(com_logstr,
  422.  #ifdef WIN32_SUPPORT
  423.   #define COM_ALERTX(x,y,z)                                                   \
  424.                       {                                                       \
  425.                         CSENTERCRITSEC(&crit_comlog);                         \
  426.                         SPRINTF(z);                                           \
  427.                         sepualrt(x,y,com_logstr,&crit_comlog);                \
  428.                       }
  429.  #else
  430.   #define COM_ALERTX(x,y,z)                                                   \
  431.                       {                                                       \
  432.                         DosSemRequest(&com_logsem,10000L);                    \
  433.                         SPRINTF(z);                                           \
  434.                         sepualrt(x,y,com_logstr,&com_logsem);                 \
  435.                       }
  436.  #endif
  437. #endif
  438. #define COM_ERROR(x) COM_LOG(16,x,(com_logstr,"%d",rc));                      \
  439.                      rc = x
  440.  
  441. #define COM_TRC_SNA(x)
  442.  
  443. /*****************************************************************************/
  444. /* Add a new macro to allow components which don't log though the DMOD (eg   */
  445. /* Print Server) to decide whether or not a message should be logged.        */
  446. /*****************************************************************************/
  447. #define COM_LOG_CHECK(v,x)                                                  \
  448.                     if (v >= ptrc->audlvl)                                  \
  449.                     {                                                       \
  450.                       x = TRUE;                                             \
  451.                     }                                                       \
  452.                     else                                                    \
  453.                     {                                                       \
  454.                       x = FALSE;                                            \
  455.                     }                                                       \
  456.  
  457. /*****************************************************************************/
  458. /* Trace macros for LUA/RUI/SLI tracing.                                     */
  459. /*****************************************************************************/
  460. #define INIT            0     /* Initial function for link services     */
  461. #define REQUEST         1
  462. #define RESPONSE        2
  463. #define POST            3
  464.  
  465. #if (defined(DOS_SUPPORT) || defined(MSWIN_SUPPORT))
  466. extern VOID FAR pascal seputrlu(USHORT, UCHAR FAR *, TRC FAR *);
  467.  
  468. #define COM_TRC_LUA(x,y)                                                \
  469.                     if (ptrc && (ptrc->flags & LUAMSGS)) {              \
  470.                       seputrlu(x,y,ptrc);                               \
  471.                     }
  472. #else
  473.  #ifdef WIN32_SUPPORT
  474.    extern VOID WINAPI seputrlu(USHORT, UCHAR *);
  475.  #else
  476.    extern VOID FAR PASCAL seputrlu(USHORT, UCHAR FAR *);
  477.  #endif
  478.  
  479. #define COM_TRC_LUA(x,y)                                                \
  480.                     if (ptrc->flags & LUAMSGS) {                        \
  481.                       seputrlu(x,y);                                    \
  482.                     }
  483.  
  484.  
  485. #endif
  486.  
  487. /*****************************************************************************/
  488. /* Defines for IHV tracing macros                                            */
  489. /*****************************************************************************/
  490. #ifdef WIN32_SUPPORT
  491. extern VOID WINAPI seputrhv(UCHAR *);
  492. extern VOID WINAPI sepdtrci(TRC **);
  493.  
  494. #define COM_TRC_IHV(x)                                                  \
  495.                     if (ptrc->flags & LINKMSGS) {                       \
  496.                       seputrhv(x);                                      \
  497.                     }
  498. #ifdef ASYNCTRACE
  499.     #define INITIALIZE_TRACING InitAsyncTraceEx(" ")
  500. #else
  501.     #define INITIALIZE_TRACING sepdtrci(&ptrc)
  502. #endif
  503.  
  504. #endif
  505.  
  506. /*****************************************************************************/
  507. /* Defines for Log messages                                                  */
  508. /*****************************************************************************/
  509. #define LOG_ALERT_REJ   392                     /* alert was rejected        */
  510. #define LOG_SESS_START  442                     /* user logged on            */
  511. #define LOG_SESS_END    443                     /* user logged off           */
  512. #define LOG_SESS_FAIL   444                     /* session lost              */
  513. #define LOG_EMUL_START  445                     /* emulation started         */
  514. #define LOG_EMUL_END    446                     /* emulation ended           */
  515.  
  516. /*****************************************************************************/
  517. /* Function prototypes                                                       */
  518. /*****************************************************************************/
  519. #ifdef MSWIN_SUPPORT
  520. extern VOID pascal FAR seputrc(USHORT, UCHAR FAR *, TRC far *, UCHAR FAR *);
  521. extern VOID pascal FAR sepulog(USHORT, USHORT, TRC far *, UCHAR FAR *);
  522.  
  523. #define sepudcpy(x,y,z) _fmemcpy(x,y,z)
  524.  
  525. #else
  526.  #ifdef WIN32_SUPPORT
  527.   extern VOID  WINAPI seputrc(USHORT, UCHAR FAR *);
  528.   extern VOID  WINAPI seputrc_w(UCHAR FAR *, USHORT, UCHAR FAR *);
  529.   extern VOID  WINAPI sepulog(USHORT, USHORT);
  530.   extern VOID  WINAPI sepulog_w(UCHAR FAR *,USHORT, USHORT);
  531.   /***************************************************************************/
  532.   /* New internal trace function                                        *NTRC*/
  533.   /***************************************************************************/
  534.   extern VOID InternalTrace( UCHAR * ModName, const UCHAR * FormatText, ...);
  535.  #else
  536.   extern USHORT APIENTRY sepudcpy(UCHAR FAR *, UCHAR FAR *, unsigned short);
  537.   extern VOID   APIENTRY seputrc(USHORT, UCHAR FAR *);
  538.   extern VOID   APIENTRY seputrc_w(UCHAR FAR *, USHORT, UCHAR FAR *);
  539.   extern VOID   APIENTRY sepulog(USHORT, USHORT);
  540.   extern VOID   APIENTRY sepulog_w(UCHAR FAR *,USHORT, USHORT);
  541.  #endif
  542. #endif
  543. #ifdef WIN32_SUPPORT
  544. extern VOID  WINAPI sepualrt(USHORT, UCHAR *, UCHAR *, CSCRITSEC *);
  545. #else
  546. #ifdef MSWIN_SUPPORT
  547. extern VOID pascal FAR sepualrt(USHORT, UCHAR FAR *, UCHAR FAR *, ULONG FAR *);
  548. #else
  549. extern VOID APIENTRY sepualrt(USHORT, UCHAR FAR *, UCHAR FAR *, ULONG FAR *);
  550. #endif
  551. #endif
  552. /* End of file trace.h */
  553.  
  554.