148 lines
6.6 KiB
C
148 lines
6.6 KiB
C
|
/*
|
||
|
* DISP.H - debug display macro's under NDIS
|
||
|
*/
|
||
|
|
||
|
#ifndef _DISP_
|
||
|
#define _DISP_
|
||
|
|
||
|
#if !BINARY_COMPATIBLE
|
||
|
#include "digifile.h"
|
||
|
#include "memprint.h"
|
||
|
#else
|
||
|
#define DbgBreakPoint() {__asm { int 3 };}
|
||
|
#endif
|
||
|
|
||
|
extern ULONG DigiDebugLevel;
|
||
|
|
||
|
#define DIGIINIT ((ULONG)0x00000001)
|
||
|
#define DIGISETINFO ((ULONG)0x00000002)
|
||
|
#define DIGIGETINFO ((ULONG)0x00000004)
|
||
|
#define DIGIWANINFO ((ULONG)0x00000008)
|
||
|
#define DIGISXBINFO ((ULONG)0x00000010)
|
||
|
#define DIGITAPIINFO ((ULONG)0x00000020)
|
||
|
#define DIGIRECVDATA ((ULONG)0x00000040)
|
||
|
#define DIGITXDATA ((ULONG)0x00000080)
|
||
|
#define DIGIRARE ((ULONG)0x00000100)
|
||
|
#define DIGIWANERR ((ULONG)0x00000200)
|
||
|
#define DIGIWANERRDATA ((ULONG)0x00000400)
|
||
|
#define DIGIRXDATA ((ULONG)0x00000800)
|
||
|
#define DIGIWANOID ((ULONG)0x00010000)
|
||
|
#define DIGIQ931 ((ULONG)0x00020000)
|
||
|
#define DIGIIRP ((ULONG)0x00040000)
|
||
|
#define DIGIWAIT ((ULONG)0x00080000)
|
||
|
#define DIGITXFRAGDATA ((ULONG)0x00100000)
|
||
|
#define DIGIRXFRAGDATA ((ULONG)0x00200000)
|
||
|
#define DIGIIDD ((ULONG)0x00400000)
|
||
|
#define DIGINEVER ((ULONG)0x00800000)
|
||
|
#define DIGIATLASFLOW ((ULONG)0x01000000)
|
||
|
#define DIGIWINISDN ((ULONG)0x02000000)
|
||
|
#define DIGICALLSTATES ((ULONG)0x04000000)
|
||
|
#define DIGIMTL ((ULONG)0x08000000)
|
||
|
#define DIGIFLOW ((ULONG)0x10000000)
|
||
|
#define DIGIERRORS ((ULONG)0x20000000)
|
||
|
#define DIGINOTIMPLEMENTED ((ULONG)0x40000000)
|
||
|
#define DIGIBUGCHECK ((ULONG)0x80000000)
|
||
|
#define DIGIINFO (DIGIGETINFO | DIGISETINFO)
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
#define DigiAssert 1
|
||
|
#if DigiAssert
|
||
|
#undef ASSERT
|
||
|
#define ASSERT( STRING ) \
|
||
|
if( !(STRING) ) \
|
||
|
{ \
|
||
|
DbgPrint( "ASSERT failed: " #STRING "\nfile: %s, line %d\n", __FILE__, __LINE__ ); \
|
||
|
DbgBreakPoint(); \
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#define DigiDump(LEVEL,STRING) \
|
||
|
do { \
|
||
|
ULONG _level = (LEVEL); \
|
||
|
if ((DigiDebugLevel & _level) || (_level & DIGINOTIMPLEMENTED)) \
|
||
|
{ \
|
||
|
DbgPrint STRING; \
|
||
|
} \
|
||
|
if (_level & DIGIBUGCHECK) \
|
||
|
{ \
|
||
|
ASSERT(FALSE); \
|
||
|
} \
|
||
|
} while (0)
|
||
|
|
||
|
#define DigiDumpData(LEVEL, DATA, LEN) \
|
||
|
do \
|
||
|
{ \
|
||
|
ULONG _DataLevel = (LEVEL); \
|
||
|
ULONG _i, _k; \
|
||
|
ULONG _len = (LEN); \
|
||
|
PCHAR _data = (DATA); \
|
||
|
\
|
||
|
_k = 0; \
|
||
|
while( _k <= _len ) \
|
||
|
{ \
|
||
|
if( (_len - _k) > 16 ) \
|
||
|
{ \
|
||
|
for( _i = 0; _i < 16; _i++ ) \
|
||
|
{ \
|
||
|
DigiDump( _DataLevel, ( "%02x ", (_data[_i] & 0xFF)) ); \
|
||
|
_k++; \
|
||
|
} \
|
||
|
\
|
||
|
DigiDump( _DataLevel, ( " ") ); \
|
||
|
\
|
||
|
for( _i = 0; _i < 16; _i++ ) \
|
||
|
{ \
|
||
|
if( _data[_i] >= 0x20 && _data[_i] <= 0x7E ) \
|
||
|
DigiDump( _DataLevel, ( "%c",_data[_i]) ); \
|
||
|
else \
|
||
|
DigiDump( _DataLevel, ( ".") ); \
|
||
|
} \
|
||
|
DigiDump( _DataLevel, ( "\n") ); \
|
||
|
_data += _i; \
|
||
|
} \
|
||
|
else \
|
||
|
{ \
|
||
|
for( _i = 0; _i < (_len - _k); _i++ ) \
|
||
|
{ \
|
||
|
DigiDump( _DataLevel, ( "%02x ",(_data[_i] & 0xFF)) ); \
|
||
|
} \
|
||
|
\
|
||
|
for( _i = 0; _i < (16 - (_len - _k)); _i++ ) \
|
||
|
DigiDump( _DataLevel, ( " ") ); \
|
||
|
\
|
||
|
DigiDump( _DataLevel, ( " ") ); \
|
||
|
\
|
||
|
for( _i = 0; _i < (_len - _k); _i++ ) \
|
||
|
{ \
|
||
|
if(_data[_i] >= 0x20 && _data[_i] <= 0x7E) \
|
||
|
DigiDump( _DataLevel, ( "%c",_data[_i]) ); \
|
||
|
else \
|
||
|
DigiDump( _DataLevel, ( ".") ); \
|
||
|
} \
|
||
|
DigiDump( _DataLevel, ( "\n") ); \
|
||
|
break; \
|
||
|
} \
|
||
|
} \
|
||
|
} while ( 0 );
|
||
|
|
||
|
#else
|
||
|
#define DigiDump(LEVEL,STRING) do {NOTHING;} while (0)
|
||
|
#define DigiDumpData(LEVEL,DATA,LEN) do {NOTHING;} while (0)
|
||
|
#endif
|
||
|
|
||
|
/* main macro to be used for logging */
|
||
|
#define D_LOG(level, args) DigiDump( level, args )
|
||
|
|
||
|
/* log levels */
|
||
|
#define D_ALWAYS DIGIFLOW
|
||
|
#define D_ENTRY DIGIFLOW
|
||
|
#define D_EXIT DIGIFLOW
|
||
|
#define D_RARE DIGIRARE
|
||
|
#define D_NEVER DIGINEVER
|
||
|
|
||
|
|
||
|
#endif /* _DISP_ */
|
||
|
|
||
|
|