247 lines
6.7 KiB
C
247 lines
6.7 KiB
C
/*++
|
|
|
|
Copyright (c) 1990-1998 Microsoft Corporation, All Rights Reserved.
|
|
|
|
Module Name:
|
|
|
|
ATMSMDbg.h
|
|
|
|
Abstract:
|
|
|
|
Debug macros for ATMSMDRV
|
|
|
|
Author:
|
|
|
|
Anil Francis Thomas (10/98)
|
|
|
|
Environment:
|
|
|
|
Kernel
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _ATMSMDbg__H
|
|
#define _ATMSMDbg__H
|
|
|
|
|
|
#define MEMORY_TAG 'MSDN'
|
|
|
|
//
|
|
// The ID of each source section (Used as the first 28 bits of AtmSmDebugFlag)
|
|
//
|
|
#define MODULE_INIT 0x00000010
|
|
|
|
#define MODULE_ADAPTER 0x00000100
|
|
#define MODULE_CALLMGR 0x00000200
|
|
|
|
#define MODULE_WMI 0x00001000
|
|
#define MODULE_PACKET 0x00002000
|
|
|
|
#define MODULE_SEND 0x00010000
|
|
#define MODULE_RECV 0x00020000
|
|
|
|
#define MODULE_MISC 0x00100000
|
|
#define MODULE_REQUEST 0x00200000
|
|
#define MODULE_IOCTL 0x00400000
|
|
|
|
#define MODULE_DEBUG 0x10000000
|
|
|
|
|
|
|
|
#if DBG
|
|
|
|
// The value here defines what debug output you wants to see. The value is a
|
|
// combination of DebugLevel and the module IDs
|
|
// All messages in the specified modules with urgency lower than
|
|
// specified will be enabled.
|
|
extern UINT AtmSmDebugFlag;
|
|
|
|
//
|
|
// Message verbosity: lower values indicate higher urgency.
|
|
// (specified in the last 4 bits of AtmSmDebugFlag)
|
|
//
|
|
#define ATMSMD_VERY_LOUD 6
|
|
#define ATMSMD_IN_OUT 5
|
|
#define ATMSMD_LOUD 4
|
|
#define ATMSMD_INFO 3
|
|
#define ATMSMD_WARN 2
|
|
#define ATMSMD_ERR 1
|
|
#define ATMSMD_FATAL 0
|
|
|
|
#define DBG_LVL(DbgFlag) (DbgFlag & 0x0000000F)
|
|
|
|
|
|
#define CheckLockCount(Count) { \
|
|
\
|
|
if ((INT)(Count) < 0) { \
|
|
\
|
|
DbgPrint("Lock Count %d is < 0! File %s, Line %d\n", \
|
|
Count, __FILE__, __LINE__); \
|
|
DbgBreakPoint(); \
|
|
} \
|
|
}
|
|
|
|
|
|
#define ATMSMDebugP(Level, Fmt) { \
|
|
\
|
|
if((MODULE_ID & AtmSmDebugFlag) \
|
|
&& (Level <= DBG_LVL(AtmSmDebugFlag))) { \
|
|
\
|
|
DbgPrint("** AtmSmDrv (0x%X): ", MODULE_ID ); \
|
|
DbgPrint Fmt; \
|
|
} \
|
|
}
|
|
|
|
|
|
#define DbgVeryLoud(Fmt) ATMSMDebugP(ATMSMD_VERY_LOUD, Fmt)
|
|
#define DbgInOut(Fmt) ATMSMDebugP(ATMSMD_IN_OUT, Fmt)
|
|
#define DbgLoud(Fmt) ATMSMDebugP(ATMSMD_LOUD, Fmt)
|
|
#define DbgInfo(Fmt) ATMSMDebugP(ATMSMD_INFO, Fmt)
|
|
#define DbgWarn(Fmt) ATMSMDebugP(ATMSMD_WARN, Fmt)
|
|
#define DbgErr(Fmt) ATMSMDebugP(ATMSMD_ERR, Fmt)
|
|
#define DbgFatal(Fmt) ATMSMDebugP(ATMSMD_FATAL, Fmt)
|
|
|
|
#define TraceIn(x) DbgInOut(("--> "#x"\n"))
|
|
#define TraceOut(x) DbgInOut(("<-- "#x"\n"))
|
|
|
|
//
|
|
// Memory Allocation/Freeing Auditing:
|
|
//
|
|
|
|
#define INIT_DONE_PATTERN 0x01020102
|
|
#define TRAILER_PATTERN 0x0A0B0C0D
|
|
|
|
//
|
|
// The ATMSMD_ALLOCATION structure stores all info about one AtmSmMemAlloc.
|
|
//
|
|
typedef struct _ATMSMD_ALLOCATION {
|
|
|
|
ULONG ulSignature;
|
|
struct _ATMSMD_ALLOCATION *Next;
|
|
struct _ATMSMD_ALLOCATION *Prev;
|
|
ULONG ulModuleNumber;
|
|
ULONG ulLineNumber;
|
|
ULONG ulSize;
|
|
union
|
|
{
|
|
ULONGLONG Alignment;
|
|
UINT_PTR Location; // where the returned pointer was put
|
|
};
|
|
|
|
} ATMSMD_ALLOCATION, *PATMSMD_ALLOCATION;
|
|
|
|
|
|
typedef struct _ATMSMD_ALLOC_GLOBAL {
|
|
|
|
PATMSMD_ALLOCATION pAtmSmHead;
|
|
PATMSMD_ALLOCATION pAtmSmTail;
|
|
ULONG ulAtmSmAllocCount;
|
|
NDIS_SPIN_LOCK AtmSmMemoryLock;
|
|
ULONG ulAtmSmInitDonePattern;
|
|
|
|
} ATMSMD_ALLOC_GLOBAL, *PATMSMD_ALLOC_GLOBAL;
|
|
|
|
extern
|
|
VOID
|
|
AtmSmInitializeAuditMem(
|
|
);
|
|
|
|
extern
|
|
VOID
|
|
AtmSmShutdownAuditMem(
|
|
);
|
|
|
|
extern
|
|
PVOID
|
|
AtmSmAuditAllocMem (
|
|
PVOID *ppPointer,
|
|
ULONG ulSize,
|
|
ULONG ulModuleNumber,
|
|
ULONG ulLineNumber
|
|
);
|
|
|
|
extern
|
|
VOID
|
|
AtmSmAuditFreeMem(
|
|
PVOID Pointer
|
|
);
|
|
|
|
#define ATMSM_INITIALIZE_AUDIT_MEM() AtmSmInitializeAuditMem()
|
|
#define ATMSM_SHUTDOWN_AUDIT_MEM() AtmSmShutdownAuditMem()
|
|
|
|
#define AtmSmAllocMem(ppPointer, TYPE, Size) \
|
|
*ppPointer = (TYPE)AtmSmAuditAllocMem((PVOID *)ppPointer, Size, \
|
|
MODULE_ID, __LINE__)
|
|
|
|
#define AtmSmFreeMem(pPointer) AtmSmAuditFreeMem((PVOID)pPointer)
|
|
|
|
|
|
VOID
|
|
PrintATMAddr(
|
|
IN char *pStr,
|
|
IN PATM_ADDRESS pAtmAddr
|
|
);
|
|
|
|
#define DumpATMAddress(Level, Str, Addr) { \
|
|
\
|
|
if((MODULE_ID & AtmSmDebugFlag) \
|
|
&& (Level <= DBG_LVL(AtmSmDebugFlag))) { \
|
|
\
|
|
PrintATMAddr(Str,Addr); \
|
|
} \
|
|
}
|
|
|
|
|
|
#define ATMSM_GET_ENTRY_IRQL(_Irql) \
|
|
_Irql = KeGetCurrentIrql()
|
|
#define ATMSM_CHECK_EXIT_IRQL(_EntryIrql, _ExitIrql) \
|
|
{ \
|
|
_ExitIrql = KeGetCurrentIrql(); \
|
|
if (_ExitIrql != _EntryIrql) \
|
|
{ \
|
|
DbgPrint("File %s, Line %d, Exit IRQ %d != Entry IRQ %d\n", \
|
|
__FILE__, __LINE__, _ExitIrql, _EntryIrql); \
|
|
DbgBreakPoint(); \
|
|
} \
|
|
}
|
|
|
|
#else // DBG
|
|
|
|
//
|
|
// No debug
|
|
//
|
|
#define ATMSM_INITIALIZE_AUDIT_MEM()
|
|
|
|
#define ATMSM_SHUTDOWN_AUDIT_MEM()
|
|
|
|
#define AtmSmAllocMem(ppPointer, TYPE, Size) \
|
|
NdisAllocateMemoryWithTag((PVOID *)ppPointer, (ULONG)Size, \
|
|
(ULONG)MEMORY_TAG)
|
|
|
|
#define AtmSmFreeMem(pPointer) NdisFreeMemory((PVOID)(pPointer), 0, 0)
|
|
|
|
|
|
#define CheckLockCount(Count)
|
|
|
|
#define DbgVeryLoud(Fmt)
|
|
#define DbgInOut(Fmt)
|
|
#define DbgLoud(Fmt)
|
|
#define DbgInfo(Fmt)
|
|
#define DbgWarn(Fmt)
|
|
#define DbgErr(Fmt)
|
|
#define DbgFatal(Fmt)
|
|
|
|
#define TraceIn(x)
|
|
#define TraceOut(x)
|
|
|
|
#define DumpATMAddress(Level, Str, Addr)
|
|
|
|
#define ATMSM_GET_ENTRY_IRQL(Irql)
|
|
#define ATMSM_CHECK_EXIT_IRQL(EntryIrql, ExitIrql)
|
|
|
|
#endif // DBG
|
|
|
|
#endif // _AtmSmDbg__H
|