Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1997-2000 Microsoft Corporation
Module Name:
debug.h
Abstract:
This header provides debugging support prototypes and macros
Author:
Andy Thornton (andrewth) 20-Oct-97
Revision History:
--*/
#if !defined(_DEBUG_)
#define DEBUG
#if DBG
typedef struct _MF_STRING_MAP { ULONG Id; PCHAR String; } MF_STRING_MAP, *PMF_STRING_MAP;
//
// Debug globals
//
extern LONG MfDebug; extern MF_STRING_MAP MfDbgPnpIrpStringMap[]; extern MF_STRING_MAP MfDbgPoIrpStringMap[]; extern MF_STRING_MAP MfDbgDeviceRelationStringMap[]; extern MF_STRING_MAP MfDbgSystemPowerStringMap[]; extern MF_STRING_MAP MfDbgDevicePowerStringMap[]; extern PMF_STRING_MAP MfDbgStatusStringMap;
//
// Debug prototypes
//
VOID MfDbgInitialize( VOID );
VOID MfDbgPrintMultiSz( LONG DebugLevel, PWSTR MultiSz );
PCHAR MfDbgLookupString( IN PMF_STRING_MAP Map, IN ULONG Id );
VOID MfDbgPrintResourceMap( LONG DebugLevel, PMF_RESOURCE_MAP Map );
VOID MfDbgPrintVaryingResourceMap( LONG DebugLevel, PMF_VARYING_RESOURCE_MAP Map );
VOID MfDbgPrintCmResList( IN LONG Level, IN PCM_RESOURCE_LIST ResourceList );
VOID MfDbgPrintIoResReqList( IN LONG Level, IN PIO_RESOURCE_REQUIREMENTS_LIST IoResReqList );
PUCHAR MfDbgCmResourceTypeToText( UCHAR Type );
//
// Debug macros
//
#define DEBUG_PRINT(Level, Msg) \
if (Level <= MfDebug) DbgPrint Msg
#define DEBUG_MSG(Level, Msg) \
if (Level <= MfDebug) { DbgPrint("Mf: "); DbgPrint Msg; }
#define ASSERT_MF_DEVICE(DeviceObject) \
ASSERT(((PMF_COMMON_EXTENSION)DeviceObject->DeviceExtension)->Type \ == MfFunctionalDeviceObject \ || \ ((PMF_COMMON_EXTENSION)DeviceObject->DeviceExtension)->Type \ == MfPhysicalDeviceObject)
#define STATUS_STRING(_Status) \
(_Status) == STATUS_SUCCESS ? \ "STATUS_SUCCESS" : MfDbgLookupString(MfDbgStatusStringMap, (_Status))
#define PNP_IRP_STRING(_Irp) \
MfDbgLookupString(MfDbgPnpIrpStringMap, (_Irp))
#define PO_IRP_STRING(_Irp) \
MfDbgLookupString(MfDbgPoIrpStringMap, (_Irp))
#define RELATION_STRING(_Relation) \
MfDbgLookupString(MfDbgDeviceRelationStringMap, (_Relation))
#define SYSTEM_POWER_STRING(_State) \
MfDbgLookupString(MfDbgSystemPowerStringMap, (_State))
#define DEVICE_POWER_STRING(_State) \
MfDbgLookupString(MfDbgDevicePowerStringMap, (_State))
#else
#define DEBUG_PRINT(Level, Msg)
#define DEBUG_MSG(Level, Msg)
#define ASSERT_MF_DEVICE(DeviceObject)
#define STATUS_STRING(_Status) ""
#define PNP_IRP_STRING(_Irp) ""
#define PO_IRP_STRING(_Irp) ""
#define RELATION_STRING(_Relation) ""
#define SYSTEM_POWER_STRING(_State) ""
#define DEVICE_POWER_STRING(_State) ""
#endif // DBG
#endif
|