summaryrefslogblamecommitdiffstats
path: root/private/ntos/ndis/digi/pcimac/disp.h
blob: b79bbf5fe4dee2abf963133d3ebbd01989ca6dda (plain) (tree)


















































































































































                                                                                          
/*
 * 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_ */