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