Trace.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:24k
- /*
- * trace.h
- * Definitions for tracing routines for Host Integration Server/SNA Server
- *
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * All Rights Reserved.
- */
- #ifndef _TRACE_H_
- #define _TRACE_H_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if (defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT))
- #ifndef DONT_INCLUDE_MEMORY_H
- #include <memory.h>
- #endif
- #endif
- /* Unless tracing is to be used with SNA Server 2.11,
- * asynchronous tracing must be enabled for compatibility with the
- * SNA Server 3.0, SNA Server 4.0, and Host Integration Server 2000
- */
- #ifndef SNAVER211
- #ifndef ASYNCTRACE
- #define ASYNCTRACE
- #endif
- #include <dbgtrace.h>
- #endif /* SNAVER211 */
- #ifdef WIN32_SUPPORT
- #define sepudcpy(X,Y,Z) memcpy(X,Y,Z)
- #endif
- #ifdef DOS_SUPPORT
- extern int _cdecl far com_sprintf( char far *, const char far *, ... );
- #define SPRINTF(x) com_sprintf x;
- #else
- #if (defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT))
- /***************************************************************************/
- /* Temporary for Win32: in Win32 DLLs in PDK2, sprintf is not available: */
- /* use wsprintf instead. */
- /***************************************************************************/
- #define SPRINTF(x) wsprintf x;
- #else
- #define SPRINTF(x) sprintf x;
- #endif
- #endif
- /*****************************************************************************/
- /* Comm Server Critical Section macros. */
- /*****************************************************************************/
- #ifdef WIN32_SUPPORT
- typedef struct cscritsec
- {
- BOOL Inited;
- CRITICAL_SECTION CritSec;
- } CSCRITSEC;
- #define CSENTERCRITSEC(x) if (!((x)->Inited))
- {
- InitializeCriticalSection(&((x)->CritSec));
- (x)->Inited = TRUE;
- }
- EnterCriticalSection(&((x)->CritSec))
- #define CSEXITCRITSEC(x) LeaveCriticalSection(&((x)->CritSec))
- #define CSLEAVECRITSEC(x) LeaveCriticalSection(&((x)->CritSec))
- #endif
- /*****************************************************************************/
- /* Global flags and variables */
- /*****************************************************************************/
- #ifdef MSWIN_SUPPORT
- #define com_str com_logstr
- #endif
- #ifdef WIN32_SUPPORT
- extern CSCRITSEC crit_comlog;
- extern CSCRITSEC crit_dlbtrc;
- extern CSCRITSEC crit_dlblog;
- extern UCHAR com_str[256];
- extern UCHAR com_logstr[256];
- #else
- #ifndef MSWIN_SUPPORT
- extern ULONG pascal com_trcsem;
- extern ULONG pascal com_logsem;
- extern ULONG pascal dlb_logsem;
- extern ULONG pascal dlb_trcsem;
- extern UCHAR pascal com_str[256];
- #endif
- #endif
- #ifndef WIN32_SUPPORT
- extern UCHAR pascal com_logstr[256];
- #endif
- /*****************************************************************************/
- /* TRACEn macro definitions */
- /*****************************************************************************/
- #ifdef NOTRC
- #define TRCLVL 20
- #else
- # ifndef TRCLVL
- #define TRCLVL 0
- # endif
- #endif
- #ifdef WIN32_SUPPORT /*NTRC*/
- #if (!defined(ASYNCTRACE) || defined(NOTRC) )
- #if TRCLVL < 3 /*NTRC*/
- #define TRACE2() TRACEX(2,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE2() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 5 /*NTRC*/
- #define TRACE4() TRACEX(4,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE4() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 7 /*NTRC*/
- #define TRACE6() TRACEX(6,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE6() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 9 /*NTRC*/
- #define TRACE8() TRACEX(8,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE8() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 11 /*NTRC*/
- #define TRACE10() TRACEX(10,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE10() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 13 /*NTRC*/
- #define TRACE12() TRACEX(12,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE12() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #if TRCLVL < 17 /*NTRC*/
- #define TRACE16() TRACEX(16,(com_mod, (const UCHAR *) /*NTRC*/
- #else /*NTRC*/
- #define TRACE16() TRACEZ(( /*NTRC*/
- #endif /*NTRC*/
- #else
- #define TRACE2() DEBUGTRACEX(((long)NULL, (const char *)
- #define TRACE4() DEBUGTRACEX(((long)NULL, (const char *)
-
- #define TRACE6() ERRORTRACEX(((long)NULL, (const char *)
- #define TRACE8() ERRORTRACEX(((long)NULL, (const char *)
- #define TRACE10() ERRORTRACEX(((long)NULL, (const char *)
-
- #define TRACE12() FATALTRACEX(((long)NULL, (const char *)
- #define TRACE16() FATALTRACEX(((long)NULL, (const char *)
- #define DEBUGTRACEX(x) DebugTrace x
- #define ERRORTRACEX(x) ErrorTrace x
- #define FATALTRACEX(x) FatalTrace x
- #define TRACET(y)
- if (y >= ptrc->intlvl) { SYSTEMTIME st;
- GetSystemTime(&st);
- SPRINTF((Time_Msg,"Time %2.2hu:%2.2hu.%2.2hu",
- st.wMinute,
- st.wSecond,
- (st.wMilliseconds/10)));
- DebugTrace(NULL, Time_Msg);
- }
-
- #define COM_ENTRY(x) DWORD rc = 0;
- DWORD rc2 = 0;
- TraceQuietEnter(x)
- #endif
- #else /*NTRC*/
- #if TRCLVL < 3
- #define TRACE2() TRACEX(2,(com_str,
- #else /*NTRC*/
- #define TRACE2() TRACEZ((
- #endif
- #if TRCLVL < 5
- #define TRACE4() TRACEX(4,(com_str,
- #else
- #define TRACE4() TRACEZ((
- #endif
- #if TRCLVL < 7
- #define TRACE6() TRACEX(6,(com_str,
- #else
- #define TRACE6() TRACEZ((
- #endif
- #if TRCLVL < 9
- #define TRACE8() TRACEX(8,(com_str,
- #else
- #define TRACE8() TRACEZ((
- #endif
- #if TRCLVL < 11
- #define TRACE10() TRACEX(10,(com_str,
- #else
- #define TRACE10() TRACEZ((
- #endif
- #if TRCLVL < 13
- #define TRACE12() TRACEX(12,(com_str,
- #else
- #define TRACE12() TRACEZ((
- #endif
- #if TRCLVL < 17
- #define TRACE16() TRACEX(16,(com_str,
- #else
- #define TRACE16() TRACEZ((
- #endif
- #endif /*NTRC*/
- #if TRCLVL < 20
- #ifdef DOS_SUPPORT
- #define TRACEX(w,x)
- if (ptrc && (w >= ptrc->intlvl)) {
- if (ptrc->nocat)
- CMDSemRequest(&com_trcsem,10000);
- SPRINTF(x);
- seputrc(w,com_mod);
- }
- #else
- #ifdef MSWIN_SUPPORT
- #define TRACEX(w,x)
- if (ptrc && (w >= ptrc->intlvl)) {
- SPRINTF(x);
- seputrc(w,com_mod,ptrc, com_str);
- }
- #else
- #ifdef WIN32_SUPPORT
-
- #define TRACEX(w,x) if (w >= ptrc->intlvl) InternalTrace x; /*NTRC*/
- #else
- #define TRACEX(w,x)
- if (ptrc && (w >= ptrc->intlvl)) {
- DosSemRequest(&dlb_trcsem,10000L);
- SPRINTF(x);
- seputrc_w(com_str,w,com_mod);
- DosSemClear(&dlb_trcsem);
- }
- #endif
- #endif
- #endif
- #else
- #define TRACEX(w,x)
- #endif
- #define TRACEZ(x)
- #if TRCLVL < 20
- #ifdef DOS_SUPPORT
- #define COM_ENTRY(x) UCHAR com_mod[6];
- sepudcpy(com_mod,x,6)
- #else
- #ifdef WIN32_SUPPORT
- #ifndef ASYNCTRACE
- #define COM_ENTRY(x) DWORD rc = 0;
- DWORD rc2 = 0;
- UCHAR com_mod[6];
- sepudcpy(com_mod,x,6)
- #else
- #define COM_ENTRY(x) DWORD rc = 0;
- DWORD rc2 = 0;
- TraceQuietEnter(x)
- #endif
-
- #else
- #define COM_ENTRY(x) USHORT rc = 0;
- UCHAR com_mod[6];
- sepudcpy(com_mod,x,6)
- #endif
- #endif
- #else
- #ifdef DOS_SUPPORT
- #define COM_ENTRY(x)
- #else
- #ifdef WIN32_SUPPORT
- #ifndef ASYNCTRACE
- #define COM_ENTRY(x) DWORD rc = 0; DWORD rc2=0
- #else
- #define COM_ENTRY(x) DWORD rc = 0;
- DWORD rc2 = 0;
- TraceQuietEnter(x)
- #endif
- #else
- #define COM_ENTRY(x) USHORT rc = 0;
- #endif
- #endif
- #endif
- #define COM_QUIT goto com_exit
- #define COM_EXIT com_exit:
- #define COM_EXIT_RC com_exit: return(rc)
- typedef struct trc {
- USHORT flags; /*0140* Make trace flags 2 bytes */
- #define DLCMSGS 0x0001 /* NODE TRACE CONTROL */
- #define PVIMSGS 0x0002
- #define FMIMSGS 0x0004
- #define OTHMSGS 0x0008
- #define NODEMSGS 0x000F /* All node messages to be traced */
- #define SNAMSGS 0x0010 /* User wants DLC as SNA msgs */
- #define NOSNATRC 0x0020 /* SNA tracing not permitted */
- #define CPICMSGS 0x0040 /* CPIC messages */
- #define LUAMSGS 0x0080 /* LUA/RUI trace control */
- #define HLLMSGS 0x0100 /* API trace control */
- #define SRPIMSGS 0x0200
- #define CSVMSGS 0x0400
- #define APPCMSGS 0x0800
- #define APIMSGS 0x0FC0 /*LUA* 0x0F00 -> 0x0F80 due to LUA flag */
- /*CPIC*0x0f80 -> 0x0fc0 due to CPIC flag*/
- #define LINKMSGS 0x1000 /* Link trace control */
- #define NOTRACE 0x2000 /* API tracing not permitted */
- #define ADSTOP 0x4000 /* Stop/Dump options */
- #define ADDUMP 0x8000
- UCHAR audlvl; /* Logging level */
- USHORT control; /* permission for user to control */
- USHORT intlvl; /* Internal trace level */
- USHORT nocat; /* message concatenation flag */
- USHORT apiinit; /* api tracing initialised */
- USHORT asyinit; /* special asynch initialisation flag */
- USHORT errinit;
- USHORT intinit;
- USHORT snainit;
- #if ( defined(WIN32_SUPPORT) || defined(MSWIN_SUPPORT) )
- HANDLE apihand1; /* handles for various trace files */
- HANDLE apihand2;
- HANDLE audhand;
- HANDLE errhand;
- HANDLE inthand1;
- HANDLE inthand2;
- HANDLE snahand1;
- HANDLE snahand2;
- #else
- HFILE apihand1; /* handles for various trace files */
- HFILE apihand2;
- HFILE audhand;
- HFILE errhand;
- HFILE inthand1;
- HFILE inthand2;
- HFILE snahand1;
- HFILE snahand2;
- #endif
- } TRC;
- #ifndef WIN32_SUPPORT
- extern TRC FAR * pascal ptrc;
- #else
- extern TRC FAR * ptrc;
- #endif
- /*****************************************************************************/
- /* COM_LOGn macro definitions */
- /*****************************************************************************/
- #define COM_LOG6(x) COM_LOG(6,x,(com_logstr,
- #define COM_LOG8(x) COM_LOG(8,x,(com_logstr,
- #define COM_LOG10(x) COM_LOG(10,x,(com_logstr,
- #define COM_LOG12(x) COM_LOG(12,x,(com_logstr,
- #define COM_LOG16(x) COM_LOG(16,x,(com_logstr,
- #define COM_MSG6(x) COM_MSG(6,x)
- #define COM_MSG8(x) COM_MSG(8,x)
- #define COM_MSG10(x) COM_MSG(10,x)
- #define COM_MSG12(x) COM_MSG(12,x)
- #define COM_MSG16(x) COM_MSG(16,x)
- #define COM_ERR6(x) COM_LOG(6,x,(com_logstr,"%d",ret))
- #define COM_ERR8(x) COM_LOG(8,x,(com_logstr,"%d",ret))
- #define COM_ERR10(x) COM_LOG(10,x,(com_logstr,"%d",ret))
- #define COM_ERR12(x) COM_LOG(12,x,(com_logstr,"%d",ret))
- #define COM_ERR16(x) COM_LOG(16,x,(com_logstr,"%d",ret))
- #ifdef DOS_SUPPORT
- #define COM_LOG(v,w,x)
- if (v >= ptrc->audlvl) {
- CMDSemRequest(&com_logsem,10000);
- SPRINTF(x);
- sepulog(v,w);
- }
- #else
- #ifdef MSWIN_SUPPORT
- #define COM_LOG(v,w,x)
- if (v >= ptrc->audlvl) {
- SPRINTF(x);
- sepulog(v,w,ptrc, com_logstr);
- }
- #else
- #ifndef WIN32_SUPPORT
- #define COM_LOG(v,w,x)
- if (v >= ptrc->audlvl) {
- DosSemRequest(&dlb_logsem,10000L);
- SPRINTF(x);
- sepulog_w(com_logstr,v,w);
- DosSemClear(&dlb_logsem);
- }
- #else
- #define COM_LOG(v,w,x)
- if (v >= ptrc->audlvl) {
- CSENTERCRITSEC(&crit_dlblog);
- SPRINTF(x);
- sepulog_w(com_logstr,v,w);
- CSEXITCRITSEC(&crit_dlblog);
- }
- #endif
- #endif
- #ifdef WIN32_SUPPORT
- #define COM_MSG(v,w)
- if (v >= ptrc->audlvl) {
- CSENTERCRITSEC(&crit_dlblog);
- sepulog_w(com_logstr,v,w);
- CSEXITCRITSEC(&crit_dlblog);
- }
- #else
- #define COM_MSG(v,w)
- if (v >= ptrc->audlvl) {
- DosSemRequest(&dlb_logsem,10000L);
- sepulog_w(com_logstr,v,w);
- DosSemClear(&dlb_logsem);
- }
- #endif
- /* Parameters are message #, target m/c */
- #define COM_ALERT(x,y) COM_ALERTX(x,y,(com_logstr,
- #ifdef WIN32_SUPPORT
- #define COM_ALERTX(x,y,z)
- {
- CSENTERCRITSEC(&crit_comlog);
- SPRINTF(z);
- sepualrt(x,y,com_logstr,&crit_comlog);
- }
- #else
- #define COM_ALERTX(x,y,z)
- {
- DosSemRequest(&com_logsem,10000L);
- SPRINTF(z);
- sepualrt(x,y,com_logstr,&com_logsem);
- }
- #endif
- #endif
- #define COM_ERROR(x) COM_LOG(16,x,(com_logstr,"%d",rc));
- rc = x
- #define COM_TRC_SNA(x)
- /*****************************************************************************/
- /* Add a new macro to allow components which don't log though the DMOD (eg */
- /* Print Server) to decide whether or not a message should be logged. */
- /*****************************************************************************/
- #define COM_LOG_CHECK(v,x)
- if (v >= ptrc->audlvl)
- {
- x = TRUE;
- }
- else
- {
- x = FALSE;
- }
- /*****************************************************************************/
- /* Trace macros for LUA/RUI/SLI tracing. */
- /*****************************************************************************/
- #define INIT 0 /* Initial function for link services */
- #define REQUEST 1
- #define RESPONSE 2
- #define POST 3
- #if (defined(DOS_SUPPORT) || defined(MSWIN_SUPPORT))
- extern VOID FAR pascal seputrlu(USHORT, UCHAR FAR *, TRC FAR *);
- #define COM_TRC_LUA(x,y)
- if (ptrc && (ptrc->flags & LUAMSGS)) {
- seputrlu(x,y,ptrc);
- }
- #else
- #ifdef WIN32_SUPPORT
- extern VOID WINAPI seputrlu(USHORT, UCHAR *);
- #else
- extern VOID FAR PASCAL seputrlu(USHORT, UCHAR FAR *);
- #endif
- #define COM_TRC_LUA(x,y)
- if (ptrc->flags & LUAMSGS) {
- seputrlu(x,y);
- }
- #endif
- /*****************************************************************************/
- /* Defines for IHV tracing macros */
- /*****************************************************************************/
- #ifdef WIN32_SUPPORT
- extern VOID WINAPI seputrhv(UCHAR *);
- extern VOID WINAPI sepdtrci(TRC **);
- #define COM_TRC_IHV(x)
- if (ptrc->flags & LINKMSGS) {
- seputrhv(x);
- }
- #ifdef ASYNCTRACE
- #define INITIALIZE_TRACING InitAsyncTraceEx(" ")
- #else
- #define INITIALIZE_TRACING sepdtrci(&ptrc)
- #endif
- #endif
- /*****************************************************************************/
- /* Defines for Log messages */
- /*****************************************************************************/
- #define LOG_ALERT_REJ 392 /* alert was rejected */
- #define LOG_SESS_START 442 /* user logged on */
- #define LOG_SESS_END 443 /* user logged off */
- #define LOG_SESS_FAIL 444 /* session lost */
- #define LOG_EMUL_START 445 /* emulation started */
- #define LOG_EMUL_END 446 /* emulation ended */
- /*****************************************************************************/
- /* Function prototypes */
- /*****************************************************************************/
- #ifdef MSWIN_SUPPORT
- extern VOID pascal FAR seputrc(USHORT, UCHAR FAR *, TRC far *, UCHAR FAR *);
- extern VOID pascal FAR sepulog(USHORT, USHORT, TRC far *, UCHAR FAR *);
- #define sepudcpy(x,y,z) _fmemcpy(x,y,z)
- #else
- #ifdef WIN32_SUPPORT
- extern VOID WINAPI seputrc(USHORT, UCHAR FAR *);
- extern VOID WINAPI seputrc_w(UCHAR FAR *, USHORT, UCHAR FAR *);
- extern VOID WINAPI sepulog(USHORT, USHORT);
- extern VOID WINAPI sepulog_w(UCHAR FAR *,USHORT, USHORT);
- /***************************************************************************/
- /* New internal trace function *NTRC*/
- /***************************************************************************/
- extern VOID InternalTrace( UCHAR * ModName, const UCHAR * FormatText, ...);
- #else
- extern USHORT APIENTRY sepudcpy(UCHAR FAR *, UCHAR FAR *, unsigned short);
- extern VOID APIENTRY seputrc(USHORT, UCHAR FAR *);
- extern VOID APIENTRY seputrc_w(UCHAR FAR *, USHORT, UCHAR FAR *);
- extern VOID APIENTRY sepulog(USHORT, USHORT);
- extern VOID APIENTRY sepulog_w(UCHAR FAR *,USHORT, USHORT);
- #endif
- #endif
- #ifdef WIN32_SUPPORT
- extern VOID WINAPI sepualrt(USHORT, UCHAR *, UCHAR *, CSCRITSEC *);
- #else
- #ifdef MSWIN_SUPPORT
- extern VOID pascal FAR sepualrt(USHORT, UCHAR FAR *, UCHAR FAR *, ULONG FAR *);
- #else
- extern VOID APIENTRY sepualrt(USHORT, UCHAR FAR *, UCHAR FAR *, ULONG FAR *);
- #endif
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
- /* End of file trace.h */