blob: f95d492de146fa68a02fa901cd1fd9c1b481f007 [file] [log] [blame]
Greg Hartman76d05dc2016-11-23 15:51:27 -08001#ifndef _EFI_DEBUG_H
2#define _EFI_DEBUG_H
3
4/*++
5
6Copyright (c) 1998 Intel Corporation
7
8Module Name:
9
10 efidebug.h
11
12Abstract:
13
14 EFI library debug functions
15
16
17
18Revision History
19
20--*/
21
22extern UINTN EFIDebug;
23
24#if EFI_DEBUG
25
26 #define DBGASSERT(a) DbgAssert(__FILE__, __LINE__, #a)
27 #define DEBUG(a) DbgPrint a
28
29#else
30
31 #define DBGASSERT(a)
32 #define DEBUG(a)
33
34#endif
35
36#if EFI_DEBUG_CLEAR_MEMORY
37
38 #define DBGSETMEM(a,l) SetMem(a,l,(CHAR8)BAD_POINTER)
39
40#else
41
42 #define DBGSETMEM(a,l)
43
44#endif
45
46#define D_INIT 0x00000001 // Initialization style messages
47#define D_WARN 0x00000002 // Warnings
48#define D_LOAD 0x00000004 // Load events
49#define D_FS 0x00000008 // EFI File system
50#define D_POOL 0x00000010 // Alloc & Free's
51#define D_PAGE 0x00000020 // Alloc & Free's
52#define D_INFO 0x00000040 // Verbose
53#define D_VAR 0x00000100 // Variable
54#define D_PARSE 0x00000200 // Command parsing
55#define D_BM 0x00000400 // Boot manager
56#define D_BLKIO 0x00001000 // BlkIo Driver
57#define D_BLKIO_ULTRA 0x00002000 // BlkIo Driver
58#define D_NET 0x00004000 // SNI Driver
59#define D_NET_ULTRA 0x00008000 // SNI Driver
60#define D_TXTIN 0x00010000 // Simple Input Driver
61#define D_TXTOUT 0x00020000 // Simple Text Output Driver
62#define D_ERROR_ATA 0x00040000 // ATA error messages
63#define D_ERROR 0x80000000 // Error
64
65#define D_RESERVED 0x7fffC880 // Bits not reserved above
66
67//
68// Current Debug level of the system, value of EFIDebug
69//
70//#define EFI_DBUG_MASK (D_ERROR | D_WARN | D_LOAD | D_BLKIO | D_INIT)
71#define EFI_DBUG_MASK (D_ERROR)
72
73//
74//
75//
76
77#if EFI_DEBUG
78
79 #define ASSERT(a) if(!(a)) DBGASSERT(a)
80 #define ASSERT_LOCKED(l) if(!(l)->Lock) DBGASSERT(l not locked)
81 #define ASSERT_STRUCT(p,t) DBGASSERT(t not structure), p
82
83#else
84
85 #define ASSERT(a)
86 #define ASSERT_LOCKED(l)
87 #define ASSERT_STRUCT(p,t)
88
89#endif
90
91//
92// Prototypes
93//
94
95INTN
96DbgAssert (
97 CHAR8 *file,
98 INTN lineno,
99 CHAR8 *string
100 );
101
102INTN
103DbgPrint (
104 INTN mask,
105 CHAR8 *format,
106 ...
107 );
108
109#endif
110