Trace.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:24k
源码类别:

模拟服务器

开发平台:

C/C++

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