xref: /openbsd-src/sys/stand/efi/include/efidebug.h (revision 060fee10799fa73a58f230f70329cb62e9f506ab)
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