Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

273 lines
7.5 KiB

/**************************************************************************************************************************
* DEBUG.H SigmaTel STIR4200 debug header file
**************************************************************************************************************************
* (C) Unpublished Copyright of Sigmatel, Inc. All Rights Reserved.
*
*
* Created: 04/06/2000
* Version 0.9
* Edited: 04/27/2000
* Version 0.92
*
*
**************************************************************************************************************************/
#ifndef _DEBUG_H_
#define _DEBUG_H_
#if DBG
#define DEBUG
#define DEBUG_IRUSB
//Begin, Debug code from BulkUsb
#ifndef DBGSTR_PREFIX
#define DBGSTR_PREFIX "StIrUsb: "
#endif
#define DPRINT DbgPrint
#define TRAP() DbgBreakPoint();
#define IRUSB_DBGOUTSIZE 512
typedef struct _IRUSB_DBGDATA
{
// mirrors device extension pending io count
ULONG PendingIoCount;
// count of pipe errors detected during the life of this device instance
ULONG PipeErrorCount;
// count of pipe resets performed during the life of this device instance
ULONG ResetPipeCount;
} IRUSB_DBGDATA, *PIRUSB_DBGDATA;
//these declared in debug 'c' file
extern PIRUSB_DBGDATA gpDbg;
static const PCHAR szIrpMajFuncDesc[] =
{ // note this depends on corresponding values to the indexes in wdm.h
"IRP_MJ_CREATE",
"IRP_MJ_CREATE_NAMED_PIPE",
"IRP_MJ_CLOSE",
"IRP_MJ_READ",
"IRP_MJ_WRITE",
"IRP_MJ_QUERY_INFORMATION",
"IRP_MJ_SET_INFORMATION",
"IRP_MJ_QUERY_EA",
"IRP_MJ_SET_EA",
"IRP_MJ_FLUSH_BUFFERS",
"IRP_MJ_QUERY_VOLUME_INFORMATION",
"IRP_MJ_SET_VOLUME_INFORMATION",
"IRP_MJ_DIRECTORY_CONTROL",
"IRP_MJ_FILE_SYSTEM_CONTROL",
"IRP_MJ_DEVICE_CONTROL",
"IRP_MJ_INTERNAL_DEVICE_CONTROL",
"IRP_MJ_SHUTDOWN",
"IRP_MJ_LOCK_CONTROL",
"IRP_MJ_CLEANUP",
"IRP_MJ_CREATE_MAILSLOT",
"IRP_MJ_QUERY_SECURITY",
"IRP_MJ_SET_SECURITY",
"IRP_MJ_POWER",
"IRP_MJ_SYSTEM_CONTROL",
"IRP_MJ_DEVICE_CHANGE",
"IRP_MJ_QUERY_QUOTA",
"IRP_MJ_SET_QUOTA",
"IRP_MJ_PNP"
};
//IRP_MJ_MAXIMUM_FUNCTION defined in wdm.h
static const PCHAR szPnpMnFuncDesc[] =
{ // note this depends on corresponding values to the indexes in wdm.h
"IRP_MN_START_DEVICE",
"IRP_MN_QUERY_REMOVE_DEVICE",
"IRP_MN_REMOVE_DEVICE",
"IRP_MN_CANCEL_REMOVE_DEVICE",
"IRP_MN_STOP_DEVICE",
"IRP_MN_QUERY_STOP_DEVICE",
"IRP_MN_CANCEL_STOP_DEVICE",
"IRP_MN_QUERY_DEVICE_RELATIONS",
"IRP_MN_QUERY_INTERFACE",
"IRP_MN_QUERY_CAPABILITIES",
"IRP_MN_QUERY_RESOURCES",
"IRP_MN_QUERY_RESOURCE_REQUIREMENTS",
"IRP_MN_QUERY_DEVICE_TEXT",
"IRP_MN_FILTER_RESOURCE_REQUIREMENTS",
"IRP_MN_READ_CONFIG",
"IRP_MN_WRITE_CONFIG",
"IRP_MN_EJECT",
"IRP_MN_SET_LOCK",
"IRP_MN_QUERY_ID",
"IRP_MN_QUERY_PNP_DEVICE_STATE",
"IRP_MN_QUERY_BUS_INFORMATION",
"IRP_MN_DEVICE_USAGE_NOTIFICATION",
"IRP_MN_SURPRISE_REMOVAL"
};
#define IRP_PNP_MN_FUNCMAX IRP_MN_SURPRISE_REMOVAL
static const PCHAR szSystemPowerState[] =
{
"PowerSystemUnspecified",
"PowerSystemWorking",
"PowerSystemSleeping1",
"PowerSystemSleeping2",
"PowerSystemSleeping3",
"PowerSystemHibernate",
"PowerSystemShutdown",
"PowerSystemMaximum"
};
static const PCHAR szDevicePowerState[] =
{
"PowerDeviceUnspecified",
"PowerDeviceD0",
"PowerDeviceD1",
"PowerDeviceD2",
"PowerDeviceD3",
"PowerDeviceMaximum"
};
VOID
DBG_PrintBuf(
IN PUCHAR bufptr,
int buflen
);
#define IRUSB_ASSERT( cond ) ASSERT( cond )
#define IRUSB_StringForDevState( devState ) szDevicePowerState[ devState ]
#define IRUSB_StringForSysState( sysState ) szSystemPowerState[ sysState ]
#define IRUSB_StringForPnpMnFunc( mnfunc ) szPnpMnFuncDesc[ mnfunc ]
#define IRUSB_StringForIrpMjFunc( mjfunc ) szIrpMajFuncDesc[ mjfunc ]
#else // if not DBG
//
// dummy definitions that go away in the retail build
//
#define IRUSB_ASSERT( cond )
#define IRUSB_StringForDevState( devState )
#define IRUSB_StringForSysState( sysState )
#define IRUSB_StringForPnpMnFunc( mnfunc )
#define IRUSB_StringForIrpMjFunc( mjfunc )
#endif
// End, debug code from Bul kUsb
#ifdef DEBUG
#define DEBUGCOND( ilev, cond, _x_) \
if( (ilev & DbgSettings) && ( cond )) { \
DbgPrint( DBGSTR_PREFIX ); \
DbgPrint _x_ ; \
}
#define DEBUGONCE( ilev, _x_ ) \
{ \
static BOOLEAN didOnce = FALSE; \
if ( !didOnce ) { \
didOnce = TRUE; \
DEBUGMSG( ilev, _x_ ); \
} \
}
#define DEBUGONCECOND( ilev, cond, _x_ ) \
{ \
static BOOLEAN didOnce = FALSE; \
if (( !didOnce ) && (cond)) { \
didOnce = TRUE; \
DEBUGMSG( ilev, _x_ ); \
} \
}
extern int DbgSettings;
#define DEBUGMSG( dbgs, format ) ( ((dbgs) & DbgSettings)? DbgPrint format:0 )
#define IRUSB_DUMP( flag, parms ) ( (( flag) & DbgSettings )? DBG_PrintBuf parms: 0 )
#define DBG_STAT (1 << 23)
#define DBG_PNP (1 << 24)
#define DBG_TIME (1 << 25)
#define DBG_DBG (1 << 26)
#define DBG_OUT (1 << 27)
#define DBG_BUF (1 << 28)
#define DBG_BUFS (1 << 28)
#define DBG_FUNCTION (1 << 29)
#define DBG_FUNC (1 << 29)
#define DBG_WARN (1 << 30)
#define DBG_WARNING (1 << 30)
#define DBG_ERROR (1 << 31)
#define DBG_ERR (1 << 31)
#if defined(ERROR_MESSAGES)
#define DBG_INT_ERR (1 << 31)
#else
#define DBG_INT_ERR (1 << 29)
#endif
#define DBGDBG(_dbgPrint) \
DbgPrint(_dbgPrint)
#ifdef DEBUG_IRUSB
#define DBG_D(dbgs, i) (((dbgs) & DbgSettings)? DbgPrint("irusb:"#i"==%d\n", (i)):0)
#define DBG_X(dbgs, x) (((dbgs) & DbgSettings)? DbgPrint("irusb:"#x"==0x%0*X\n", sizeof(x)*2, ((ULONG_PTR)(x))&((1<<(sizeof(x)*8))-1) ):0)
#define DBG_UNISTR(dbgs, s) (((dbgs) & DbgSettings)? DbgPrint("irusb:"#s"==%wZ\n", (s) ):0))
#define DBGTIME(_str) \
{ \
LARGE_INTEGER Time; \
\
KeQuerySystemTime(&Time); \
DEBUGMSG(DBG_TIME, (_str " %d:%d\n", \
Time.HighPart, \
Time.LowPart/10000)); \
}
#else // DEBUG_IRUSB
#define DBGTIME(_str)
#define DBGFUNC(_dbgPrint)
#define DBGOUT(_dbgPrint)
#define DBGERR(_dbgPrint)
#define DBGWARN(_dbgPrint)
#define DBGSTAT(_dbgPrint)
#define DBGTIME(_dbgPrint)
#define DEBUGMSG(dbgs,format)
#define DEBUGONCE( ilev, _x_ )
#define DEBUGCOND( a, b, c )
#define DEBUGONCECOND( a, b, c )
#define IRUSB_DUMP(dbgs,format)
#endif // DEBUG_IRUSB
#else // DEBUG
#define DBGTIME(_str)
#define DBGFUNC(_dbgPrint)
#define DBGDBG(_dbgPrint)
#define DBGOUT(_dbgPrint)
#define DBGERR(_dbgPrint)
#define DBGWARN(_dbgPrint)
#define DBGSTAT(_dbgPrint)
#define DEBUGMSG(dbgs,format)
#define DBG_D(dbgs, ivar)
#define DBG_X(dbgs, xvar)
#define DBG_UNISTR(dbgs, svar)
#define DEBUGONCE( ilev, _x_ )
#define DEBUGONCECOND( a, b, c )
#define DEBUGCOND( a, b, c )
#define IRUSB_DUMP(dbgs,format)
#endif // DEBUG
#endif // _DEBUG_H_