|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name: mp_dbg.h
Abstract: Debug definitions and macros
Revision History: Who When What -------- -------- ---------------------------------------------- DChen 11-01-99 created
Notes:
--*/
#ifndef _MP_DBG_H
#define _MP_DBG_H
//
// Message verbosity: lower values indicate higher urgency
//
#define MP_OFF 0
#define MP_ERROR 1
#define MP_WARN 2
#define MP_TRACE 3
#define MP_INFO 4
#define MP_LOUD 5
// Define a macro so DbgPrint can work on win9x, 32-bit/64-bit NT's
#ifdef _WIN64
#define PTR_FORMAT "%p"
#else
#define PTR_FORMAT "%x"
#endif
#if DBG
extern ULONG MPDebugLevel; extern BOOLEAN MPInitDone; extern NDIS_SPIN_LOCK MPMemoryLock;
#define DBGPRINT(Level, Fmt) \
{ \ if (Level <= MPDebugLevel) \ { \ DbgPrint(NIC_DBG_STRING); \ DbgPrint Fmt; \ } \ }
#define DBGPRINT_RAW(Level, Fmt) \
{ \ if (Level <= MPDebugLevel) \ { \ DbgPrint Fmt; \ } \ }
#define DBGPRINT_S(Status, Fmt) \
{ \ ULONG dbglevel; \ if(Status == NDIS_STATUS_SUCCESS || Status == NDIS_STATUS_PENDING) dbglevel = MP_TRACE; \ else dbglevel = MP_ERROR; \ DBGPRINT(dbglevel, Fmt); \ }
#define DBGPRINT_UNICODE(Level, UString) \
{ \ if (Level <= MPDebugLevel) \ { \ DbgPrint(NIC_DBG_STRING); \ mpDbgPrintUnicodeString(UString); \ } \ }
#undef ASSERT
#define ASSERT(x) if(!(x)) { \
DBGPRINT(MP_ERROR, ("Assertion failed: %s:%d %s\n", __FILE__, __LINE__, #x)); \ DbgBreakPoint(); }
//
// The MP_ALLOCATION structure stores all info about MPAuditAllocMem
//
typedef struct _MP_ALLOCATION { LIST_ENTRY List; ULONG Signature; ULONG FileNumber; ULONG LineNumber; ULONG Size; PVOID *Location; // where the returned pointer was put
UINT Flags; union { ULONGLONG Alignment; UCHAR UserData; }; } MP_ALLOCATION, *PMP_ALLOCATION;
NDIS_STATUS MPAuditAllocMem( PVOID *pPointer, UINT Size, UINT Flags, NDIS_PHYSICAL_ADDRESS HighestAddr, ULONG FileNumber, ULONG LineNumber);
NDIS_STATUS MPAuditAllocMemTag( PVOID *pPointer, UINT Size, ULONG FileNumber, ULONG LineNumber);
VOID MPAuditFreeMem( PVOID Pointer, UINT Size, UINT Flags);
VOID mpDbgPrintUnicodeString( IN PUNICODE_STRING UnicodeString);
VOID Dump( CHAR* p, ULONG cb, BOOLEAN fAddress, ULONG ulGroup );
#else // !DBG
#define DBGPRINT(Level, Fmt)
#define DBGPRINT_RAW(Level, Fmt)
#define DBGPRINT_S(Status, Fmt)
#define DBGPRINT_UNICODE(Level, UString)
#define Dump(p,cb,fAddress,ulGroup)
#undef ASSERT
#define ASSERT(x)
#endif // DBG
VOID DumpLine( CHAR* p, ULONG cb, BOOLEAN fAddress, ULONG ulGroup );
#endif // _MP_DBG_H
|