windows-nt/Source/XPSP1/NT/base/busdrv/pccard/inc/debug.h
2020-09-26 16:20:57 +08:00

181 lines
4.8 KiB
C

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
debug.h
Abstract:
This header provides debugging support prototypes and macros
Author:
Neil Sandlin (neilsa) 10-Aug-98
- code merged from mf.sys and pcmcia.sys
Revision History:
--*/
#if !defined(_DEBUG_)
#define DEBUG
#if DBG
typedef struct _PCMCIA_STRING_MAP {
ULONG Id;
PCHAR String;
} PCMCIA_STRING_MAP, *PPCMCIA_STRING_MAP;
//
// Debug globals
//
extern ULONG PcmciaDebugMask;
extern PCMCIA_STRING_MAP PcmciaDbgPnpIrpStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgPoIrpStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgDeviceRelationStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgSystemPowerStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgDevicePowerStringMap[];
extern PPCMCIA_STRING_MAP PcmciaDbgStatusStringMap;
extern PCMCIA_STRING_MAP PcmciaDbgFdoPowerWorkerStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgPdoPowerWorkerStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgSocketPowerWorkerStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgConfigurationWorkerStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgTupleStringMap[];
extern PCMCIA_STRING_MAP PcmciaDbgWakeStateStringMap[];
//
// Debug prototypes
//
PCHAR
PcmciaDbgLookupString(
IN PPCMCIA_STRING_MAP Map,
IN ULONG Id
);
VOID
PcmciaDebugPrint(
ULONG DebugMask,
PCCHAR DebugMessage,
...
);
VOID
PcmciaDumpSocket(
IN PSOCKET Socket
);
VOID
PcmciaWriteTraceEntry(
IN PSOCKET Socket,
IN ULONG Context
);
//
// Debug macros
//
#define DebugPrint(X) PcmciaDebugPrint X
#define DUMP_SOCKET(Socket) PcmciaDumpSocket(Socket)
#define TRACE(Socket, Context) PcmciaWriteTraceEntry(Socket, Context)
#define STATUS_STRING(_Status) \
(_Status) == STATUS_SUCCESS ? \
"STATUS_SUCCESS" : PcmciaDbgLookupString(PcmciaDbgStatusStringMap, (_Status))
#define PNP_IRP_STRING(_Irp) \
PcmciaDbgLookupString(PcmciaDbgPnpIrpStringMap, (_Irp))
#define PO_IRP_STRING(_Irp) \
PcmciaDbgLookupString(PcmciaDbgPoIrpStringMap, (_Irp))
#define RELATION_STRING(_Relation) \
PcmciaDbgLookupString(PcmciaDbgDeviceRelationStringMap, (_Relation))
#define SYSTEM_POWER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgSystemPowerStringMap, (_State))
#define DEVICE_POWER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgDevicePowerStringMap, (_State))
#define FDO_POWER_WORKER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgFdoPowerWorkerStringMap, (_State))
#define PDO_POWER_WORKER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgPdoPowerWorkerStringMap, (_State))
#define SOCKET_POWER_WORKER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgSocketPowerWorkerStringMap, (_State))
#define CONFIGURATION_WORKER_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgConfigurationWorkerStringMap, (_State))
#define TUPLE_STRING(_Tuple) \
PcmciaDbgLookupString(PcmciaDbgTupleStringMap, (_Tuple))
#define WAKESTATE_STRING(_State) \
PcmciaDbgLookupString(PcmciaDbgWakeStateStringMap, (_State))
//
// Debug mask flags
//
#define PCMCIA_DEBUG_ALL 0xFFFFFFFF
#define PCMCIA_DEBUG_FAIL 0x00000001
#define PCMCIA_DEBUG_INFO 0x00000002
#define PCMCIA_DEBUG_PNP 0x00000004
#define PCMCIA_DEBUG_POWER 0x00000008
#define PCMCIA_DEBUG_SOCKET 0x00000010
#define PCMCIA_DEBUG_CONFIG 0x00000020
#define PCMCIA_DEBUG_TUPLES 0x00000040
#define PCMCIA_DEBUG_RESOURCES 0x00000080
#define PCMCIA_DEBUG_ENUM 0x00000100
#define PCMCIA_DEBUG_INTERFACE 0x00001000
#define PCMCIA_DEBUG_IOCTL 0x00002000
#define PCMCIA_DEBUG_DPC 0x00004000
#define PCMCIA_DEBUG_ISR 0x00008000
#define PCMCIA_PCCARD_READY 0x00010000
#define PCMCIA_DEBUG_DETECT 0x00020000
#define PCMCIA_COUNTERS 0x00040000
#define PCMCIA_DEBUG_IRQMASK 0x00080000
#define PCMCIA_DUMP_SOCKET 0x00100000
//
// Structures
//
typedef struct _TRACE_ENTRY {
ULONG Context;
ULONG CardBusReg[5];
UCHAR ExcaReg[70];
} TRACE_ENTRY, *PTRACE_ENTRY;
#else
//
// !defined DBG
//
#define DebugPrint(X)
#define DUMP_SOCKET(Socket)
#define PDO_TRACE(PdoExt, Context)
#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