1*060fee10Skettenis /* $FreeBSD: head/sys/boot/efi/include/efidebug.h 163898 2006-11-02 02:42:48Z marcel $ */ 2*060fee10Skettenis #ifndef _EFI_DEBUG_H 3*060fee10Skettenis #define _EFI_DEBUG_H 4*060fee10Skettenis 5*060fee10Skettenis /*++ 6*060fee10Skettenis 7*060fee10Skettenis Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 8*060fee10Skettenis This software and associated documentation (if any) is furnished 9*060fee10Skettenis under a license and may only be used or copied in accordance 10*060fee10Skettenis with the terms of the license. Except as permitted by such 11*060fee10Skettenis license, no part of this software or documentation may be 12*060fee10Skettenis reproduced, stored in a retrieval system, or transmitted in any 13*060fee10Skettenis form or by any means without the express written consent of 14*060fee10Skettenis Intel Corporation. 15*060fee10Skettenis 16*060fee10Skettenis Module Name: 17*060fee10Skettenis 18*060fee10Skettenis efidebug.h 19*060fee10Skettenis 20*060fee10Skettenis Abstract: 21*060fee10Skettenis 22*060fee10Skettenis EFI library debug functions 23*060fee10Skettenis 24*060fee10Skettenis 25*060fee10Skettenis 26*060fee10Skettenis Revision History 27*060fee10Skettenis 28*060fee10Skettenis --*/ 29*060fee10Skettenis 30*060fee10Skettenis extern UINTN EFIDebug; 31*060fee10Skettenis 32*060fee10Skettenis #if EFI_DEBUG 33*060fee10Skettenis 34*060fee10Skettenis #define DBGASSERT(a) DbgAssert(__FILE__, __LINE__, #a) 35*060fee10Skettenis #define DEBUG(a) DbgPrint a 36*060fee10Skettenis 37*060fee10Skettenis #else 38*060fee10Skettenis 39*060fee10Skettenis #define DBGASSERT(a) 40*060fee10Skettenis #define DEBUG(a) 41*060fee10Skettenis 42*060fee10Skettenis #endif 43*060fee10Skettenis 44*060fee10Skettenis #if EFI_DEBUG_CLEAR_MEMORY 45*060fee10Skettenis 46*060fee10Skettenis #define DBGSETMEM(a,l) SetMem(a,l,(CHAR8)BAD_POINTER) 47*060fee10Skettenis 48*060fee10Skettenis #else 49*060fee10Skettenis 50*060fee10Skettenis #define DBGSETMEM(a,l) 51*060fee10Skettenis 52*060fee10Skettenis #endif 53*060fee10Skettenis 54*060fee10Skettenis #define D_INIT 0x00000001 // Initialization style messages 55*060fee10Skettenis #define D_WARN 0x00000002 // Warnings 56*060fee10Skettenis #define D_LOAD 0x00000004 // Load events 57*060fee10Skettenis #define D_FS 0x00000008 // EFI File system 58*060fee10Skettenis #define D_POOL 0x00000010 // Alloc & Free's 59*060fee10Skettenis #define D_PAGE 0x00000020 // Alloc & Free's 60*060fee10Skettenis #define D_INFO 0x00000040 // Verbose 61*060fee10Skettenis #define D_VARIABLE 0x00000100 // Variable 62*060fee10Skettenis #define D_VAR 0x00000100 // Variable 63*060fee10Skettenis #define D_BM 0x00000400 // Boot Manager 64*060fee10Skettenis #define D_BLKIO 0x00001000 // BlkIo Driver 65*060fee10Skettenis #define D_BLKIO_ULTRA 0x00002000 // BlkIo Driver 66*060fee10Skettenis #define D_NET 0x00004000 // SNI Driver 67*060fee10Skettenis #define D_NET_ULTRA 0x00008000 // SNI Driver 68*060fee10Skettenis #define D_UNDI 0x00010000 // UNDI Driver 69*060fee10Skettenis #define D_LOADFILE 0x00020000 // UNDI Driver 70*060fee10Skettenis #define D_EVENT 0x00080000 // Event messages 71*060fee10Skettenis 72*060fee10Skettenis #define D_ERROR 0x80000000 // Error 73*060fee10Skettenis 74*060fee10Skettenis #define D_RESERVED 0x7ff40A80 // Bits not reserved above 75*060fee10Skettenis 76*060fee10Skettenis // 77*060fee10Skettenis // Current Debug level of the system, value of EFIDebug 78*060fee10Skettenis // 79*060fee10Skettenis //#define EFI_DBUG_MASK (D_ERROR | D_WARN | D_LOAD | D_BLKIO | D_INIT) 80*060fee10Skettenis #define EFI_DBUG_MASK (D_ERROR) 81*060fee10Skettenis 82*060fee10Skettenis // 83*060fee10Skettenis // 84*060fee10Skettenis // 85*060fee10Skettenis 86*060fee10Skettenis #if EFI_DEBUG 87*060fee10Skettenis 88*060fee10Skettenis #define ASSERT(a) if(!(a)) DBGASSERT(a) 89*060fee10Skettenis #define ASSERT_LOCKED(l) if(!(l)->Lock) DBGASSERT(l not locked) 90*060fee10Skettenis #define ASSERT_STRUCT(p,t) DBGASSERT(t not structure), p 91*060fee10Skettenis 92*060fee10Skettenis #else 93*060fee10Skettenis 94*060fee10Skettenis #define ASSERT(a) 95*060fee10Skettenis #define ASSERT_LOCKED(l) 96*060fee10Skettenis #define ASSERT_STRUCT(p,t) 97*060fee10Skettenis 98*060fee10Skettenis #endif 99*060fee10Skettenis 100*060fee10Skettenis // 101*060fee10Skettenis // Prototypes 102*060fee10Skettenis // 103*060fee10Skettenis 104*060fee10Skettenis INTN 105*060fee10Skettenis DbgAssert ( 106*060fee10Skettenis CHAR8 *file, 107*060fee10Skettenis INTN lineno, 108*060fee10Skettenis CHAR8 *string 109*060fee10Skettenis ); 110*060fee10Skettenis 111*060fee10Skettenis INTN 112*060fee10Skettenis DbgPrint ( 113*060fee10Skettenis INTN mask, 114*060fee10Skettenis CHAR8 *format, 115*060fee10Skettenis ... 116*060fee10Skettenis ); 117*060fee10Skettenis 118*060fee10Skettenis #endif 119