audk/EdkModulePkg/Include/Protocol/DebugAssert.h

90 lines
2.5 KiB
C

/*++
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
DebugAssert.h
Abstract:
This protocol allows provides debug services to a driver. This is not
debugger support, but things like ASSERT() and DEBUG() macros
--*/
#ifndef _DEBUG_ASSERT_H_
#define _DEBUG_ASSERT_H_
#define EFI_DEBUG_ASSERT_PROTOCOL_GUID \
{ 0xbe499c92, 0x7d4b, 0x11d4, {0xbc, 0xee, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
//
// Forward reference for pure ANSI compatability
//
typedef struct _EFI_DEBUG_ASSERT_PROTOCOL EFI_DEBUG_ASSERT_PROTOCOL;
typedef
EFI_STATUS
(EFIAPI *EFI_DEBUG_ASSERT) (
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
IN CHAR8 *FileName,
IN INTN LineNumber,
IN CHAR8 *Description
);
typedef
EFI_STATUS
(EFIAPI *EFI_DEBUG_PRINT) (
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
IN UINTN ErrorLevel,
IN CHAR8 *Format,
IN VA_LIST Marker
);
typedef
EFI_STATUS
(EFIAPI *EFI_POST_CODE) (
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
IN UINT16 PostCode,
IN CHAR8 *PostCodeString OPTIONAL
);
typedef
EFI_STATUS
(EFIAPI *EFI_GET_ERROR_LEVEL) (
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
IN UINTN *ErrorLevel
);
typedef
EFI_STATUS
(EFIAPI *EFI_SET_ERROR_LEVEL) (
IN EFI_DEBUG_ASSERT_PROTOCOL *This,
IN UINTN ErrorLevel
);
struct _EFI_DEBUG_ASSERT_PROTOCOL {
EFI_DEBUG_ASSERT Assert;
EFI_DEBUG_PRINT Print;
EFI_POST_CODE PostCode;
EFI_GET_ERROR_LEVEL GetErrorLevel;
EFI_SET_ERROR_LEVEL SetErrorLevel;
};
extern EFI_GUID gEfiDebugAssertProtocolGuid;
#endif