/** @file
Defines and prototypes for common EFI utility error and debug messages.
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _EFI_UTILITY_MSGS_H_
#define _EFI_UTILITY_MSGS_H_
#include 
//
// Log message print Level
//
#define VERBOSE_LOG_LEVEL    15
#define WARNING_LOG_LEVEL    15
#define INFO_LOG_LEVEL       20
#define KEY_LOG_LEVEL        40
#define ERROR_LOG_LEVLE      50
//
// Status codes returned by EFI utility programs and functions
//
#define STATUS_SUCCESS  0
#define STATUS_WARNING  1
#define STATUS_ERROR    2
#define VOID void
typedef int STATUS;
#define MAX_LINE_LEN               0x200
#define MAXIMUM_INPUT_FILE_NUM     10
#ifdef __cplusplus
extern "C" {
#endif
//
// When we call Error() or Warning(), the module keeps track of the worst
// case reported. GetUtilityStatus() will get the worst-case results, which
// can be used as the return value from the app.
//
STATUS
GetUtilityStatus (
  VOID
  );
//
// If someone prints an error message and didn't specify a source file name,
// then we print the utility name instead. However they must tell us the
// utility name early on via this function.
//
VOID
SetUtilityName (
  CHAR8 *ProgramName
  )
;
VOID
PrintMessage (
  CHAR8   *Type,
  CHAR8   *FileName,
  UINT32  LineNumber,
  UINT32  MessageCode,
  CHAR8   *Text,
  CHAR8   *MsgFmt,
  va_list List
  );
VOID
Error (
  CHAR8   *FileName,
  UINT32  LineNumber,
  UINT32  ErrorCode,
  CHAR8   *OffendingText,
  CHAR8   *MsgFmt,
  ...
  )
;
VOID
Warning (
  CHAR8   *FileName,
  UINT32  LineNumber,
  UINT32  WarningCode,
  CHAR8   *OffendingText,
  CHAR8   *MsgFmt,
  ...
  )
;
VOID
DebugMsg (
  CHAR8   *FileName,
  UINT32  LineNumber,
  UINT64  MsgLevel,
  CHAR8   *OffendingText,
  CHAR8   *MsgFmt,
  ...
  )
;
VOID
VerboseMsg (
  CHAR8   *MsgFmt,
  ...
  );
VOID
NormalMsg (
  CHAR8   *MsgFmt,
  ...
  );
VOID
KeyMsg (
  CHAR8   *MsgFmt,
  ...
  );
VOID
SetPrintLevel (
  UINT64  LogLevel
  );
VOID
ParserSetPosition (
  CHAR8   *SourceFileName,
  UINT32  LineNum
  )
;
VOID
ParserError (
  UINT32  ErrorCode,
  CHAR8   *OffendingText,
  CHAR8   *MsgFmt,
  ...
  )
;
VOID
ParserWarning (
  UINT32  ErrorCode,
  CHAR8   *OffendingText,
  CHAR8   *MsgFmt,
  ...
  )
;
VOID
SetPrintLimits (
  UINT32  NumErrors,
  UINT32  NumWarnings,
  UINT32  NumWarningsPlusErrors
  )
;
#ifdef __cplusplus
}
#endif
#endif // #ifndef _EFI_UTILITY_MSGS_H_