199767f8919635c4928607450d9e0abb932109ceToomas Soome/* $FreeBSD$ */
199767f8919635c4928607450d9e0abb932109ceToomas Soome#ifndef _EFI_DEBUG_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define _EFI_DEBUG_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/*++
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCopyright (c) 1999 - 2002 Intel Corporation. All rights reserved
199767f8919635c4928607450d9e0abb932109ceToomas SoomeThis software and associated documentation (if any) is furnished
199767f8919635c4928607450d9e0abb932109ceToomas Soomeunder a license and may only be used or copied in accordance
199767f8919635c4928607450d9e0abb932109ceToomas Soomewith the terms of the license. Except as permitted by such
199767f8919635c4928607450d9e0abb932109ceToomas Soomelicense, no part of this software or documentation may be
199767f8919635c4928607450d9e0abb932109ceToomas Soomereproduced, stored in a retrieval system, or transmitted in any
199767f8919635c4928607450d9e0abb932109ceToomas Soomeform or by any means without the express written consent of
199767f8919635c4928607450d9e0abb932109ceToomas SoomeIntel Corporation.
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeModule Name:
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome efidebug.h
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAbstract:
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI library debug functions
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeRevision History
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome--*/
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeextern UINTN EFIDebug;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#if EFI_DEBUG
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DBGASSERT(a) DbgAssert(__FILE__, __LINE__, #a)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DEBUG(a) DbgPrint a
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#else
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DBGASSERT(a)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DEBUG(a)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#if EFI_DEBUG_CLEAR_MEMORY
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DBGSETMEM(a,l) SetMem(a,l,(CHAR8)BAD_POINTER)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#else
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define DBGSETMEM(a,l)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_INIT 0x00000001 // Initialization style messages
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_WARN 0x00000002 // Warnings
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_LOAD 0x00000004 // Load events
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_FS 0x00000008 // EFI File system
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_POOL 0x00000010 // Alloc & Free's
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_PAGE 0x00000020 // Alloc & Free's
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_INFO 0x00000040 // Verbose
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_VARIABLE 0x00000100 // Variable
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_VAR 0x00000100 // Variable
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_BM 0x00000400 // Boot Manager
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_BLKIO 0x00001000 // BlkIo Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_BLKIO_ULTRA 0x00002000 // BlkIo Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_NET 0x00004000 // SNI Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_NET_ULTRA 0x00008000 // SNI Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_UNDI 0x00010000 // UNDI Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_LOADFILE 0x00020000 // UNDI Driver
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_EVENT 0x00080000 // Event messages
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_ERROR 0x80000000 // Error
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define D_RESERVED 0x7ff40A80 // Bits not reserved above
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Current Debug level of the system, value of EFIDebug
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome//#define EFI_DBUG_MASK (D_ERROR | D_WARN | D_LOAD | D_BLKIO | D_INIT)
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_DBUG_MASK (D_ERROR)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#if EFI_DEBUG
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT(a) if(!(a)) DBGASSERT(a)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT_LOCKED(l) if(!(l)->Lock) DBGASSERT(l not locked)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT_STRUCT(p,t) DBGASSERT(t not structure), p
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#else
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT(a)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT_LOCKED(l)
199767f8919635c4928607450d9e0abb932109ceToomas Soome #define ASSERT_STRUCT(p,t)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Prototypes
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTN
199767f8919635c4928607450d9e0abb932109ceToomas SoomeDbgAssert (
199767f8919635c4928607450d9e0abb932109ceToomas Soome CHAR8 *file,
199767f8919635c4928607450d9e0abb932109ceToomas Soome INTN lineno,
199767f8919635c4928607450d9e0abb932109ceToomas Soome CHAR8 *string
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTN
199767f8919635c4928607450d9e0abb932109ceToomas SoomeDbgPrint (
199767f8919635c4928607450d9e0abb932109ceToomas Soome INTN mask,
199767f8919635c4928607450d9e0abb932109ceToomas Soome CHAR8 *format,
199767f8919635c4928607450d9e0abb932109ceToomas Soome ...
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif