176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _EFI_DEBUG_H
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _EFI_DEBUG_H
376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*++
576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanCopyright (c) 1998  Intel Corporation
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanModule Name:
976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    efidebug.h
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanAbstract:
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    EFI library debug functions
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanRevision History
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman--*/
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern UINTN     EFIDebug;
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if EFI_DEBUG
2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DBGASSERT(a)        DbgAssert(__FILE__, __LINE__, #a)
2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DEBUG(a)            DbgPrint a
2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else
3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DBGASSERT(a)
3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DEBUG(a)
3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if EFI_DEBUG_CLEAR_MEMORY
3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DBGSETMEM(a,l)      SetMem(a,l,(CHAR8)BAD_POINTER)
3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else
4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define DBGSETMEM(a,l)
4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_INIT        0x00000001          // Initialization style messages
4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_WARN        0x00000002          // Warnings
4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_LOAD        0x00000004          // Load events
4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_FS          0x00000008          // EFI File system
5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_POOL        0x00000010          // Alloc & Free's
5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_PAGE        0x00000020          // Alloc & Free's
5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_INFO        0x00000040          // Verbose
5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_VAR         0x00000100          // Variable
5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_PARSE       0x00000200          // Command parsing
5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_BM          0x00000400          // Boot manager
5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_BLKIO       0x00001000          // BlkIo Driver
5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_BLKIO_ULTRA 0x00002000          // BlkIo Driver
5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_NET         0x00004000          // SNI Driver
5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_NET_ULTRA   0x00008000          // SNI Driver
6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_TXTIN       0x00010000          // Simple Input Driver
6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_TXTOUT      0x00020000          // Simple Text Output Driver
6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_ERROR_ATA	  0x00040000		  		// ATA error messages
6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_ERROR       0x80000000          // Error
6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define D_RESERVED    0x7fffC880          // Bits not reserved above
6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// Current Debug level of the system, value of EFIDebug
6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//#define EFI_DBUG_MASK   (D_ERROR | D_WARN | D_LOAD | D_BLKIO | D_INIT)
7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define EFI_DBUG_MASK   (D_ERROR)
7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if EFI_DEBUG
7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT(a)               if(!(a))       DBGASSERT(a)
8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT_LOCKED(l)        if(!(l)->Lock) DBGASSERT(l not locked)
8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT_STRUCT(p,t)      DBGASSERT(t not structure), p
8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else
8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT(a)
8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT_LOCKED(l)
8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    #define ASSERT_STRUCT(p,t)
8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// Prototypes
9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
9576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanINTN
9676d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanDbgAssert (
9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    CHAR8   *file,
9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    INTN    lineno,
9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    CHAR8   *string
10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    );
10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10276d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanINTN
10376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanDbgPrint (
10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    INTN    mask,
10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    CHAR8   *format,
10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    ...
10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    );
10876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
11076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
111