#ifndef _EFI_DEBUG_H
#define _EFI_DEBUG_H
extern UINTN EFIDebug;
#if EFI_DEBUG
#define DBGASSERT(a) DbgAssert(__FILE__, __LINE__, #a)
#define DEBUG(a) DbgPrint a
#else
#define DBGASSERT(a)
#define DEBUG(a)
#endif
#if EFI_DEBUG_CLEAR_MEMORY
#define DBGSETMEM(a,l) SetMem(a,l,(CHAR8)BAD_POINTER)
#else
#define DBGSETMEM(a,l)
#endif
#define D_INIT 0x00000001
#define D_WARN 0x00000002
#define D_LOAD 0x00000004
#define D_FS 0x00000008
#define D_POOL 0x00000010
#define D_PAGE 0x00000020
#define D_INFO 0x00000040
#define D_VARIABLE 0x00000100
#define D_VAR 0x00000100
#define D_BM 0x00000400
#define D_BLKIO 0x00001000
#define D_BLKIO_ULTRA 0x00002000
#define D_NET 0x00004000
#define D_NET_ULTRA 0x00008000
#define D_UNDI 0x00010000
#define D_LOADFILE 0x00020000
#define D_EVENT 0x00080000
#define D_ERROR 0x80000000
#define D_RESERVED 0x7ff40A80
#define EFI_DBUG_MASK (D_ERROR)
#if EFI_DEBUG
#define ASSERT(a) if(!(a)) DBGASSERT(a)
#define ASSERT_LOCKED(l) if(!(l)->Lock) DBGASSERT(l not locked)
#define ASSERT_STRUCT(p,t) DBGASSERT(t not structure), p
#else
#define ASSERT(a)
#define ASSERT_LOCKED(l)
#define ASSERT_STRUCT(p,t)
#endif
INTN
DbgAssert (
CHAR8 *file,
INTN lineno,
CHAR8 *string
);
INTN
DbgPrint (
INTN mask,
CHAR8 *format,
...
);
#endif