3 VfrCompiler Error definition
5 Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
13 #include "Common/UefiBaseTypes.h"
16 VFR_RETURN_SUCCESS
= 0,
17 VFR_RETURN_ERROR_SKIPED
,
18 VFR_RETURN_FATAL_ERROR
,
19 VFR_RETURN_MISMATCHED
,
20 VFR_RETURN_INVALID_PARAMETER
,
21 VFR_RETURN_OUT_FOR_RESOURCES
,
22 VFR_RETURN_UNSUPPORTED
,
24 VFR_RETURN_FORMID_REDEFINED
,
25 VFR_RETURN_QUESTIONID_REDEFINED
,
26 VFR_RETURN_VARSTOREID_REDEFINED
,
28 VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION
,
29 VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR
,
30 VFR_RETURN_GET_EFIVARSTORE_ERROR
,
31 VFR_RETURN_EFIVARSTORE_USE_ERROR
,
32 VFR_RETURN_EFIVARSTORE_SIZE_ERROR
,
33 VFR_RETURN_GET_NVVARSTORE_ERROR
,
34 VFR_RETURN_QVAR_REUSE
,
35 VFR_RETURN_FLAGS_UNSUPPORTED
,
36 VFR_RETURN_ERROR_ARRARY_NUM
,
37 VFR_RETURN_DATA_STRING_ERROR
,
38 VFR_RETURN_DEFAULT_VALUE_REDEFINED
,
39 VFR_RETURN_CONSTANT_ONLY
,
40 VFR_RETURN_VARSTORE_NAME_REDEFINED_ERROR
,
41 VFR_RETURN_BIT_WIDTH_ERROR
,
42 VFR_RETURN_STRING_TO_UINT_OVERFLOW
,
43 VFR_RETURN_CODEUNDEFINED
44 } EFI_VFR_RETURN_CODE
;
47 VFR_WARNING_DEFAULT_VALUE_REDEFINED
= 0,
48 VFR_WARNING_ACTION_WITH_TEXT_TWO
,
49 VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE
,
50 VFR_WARNING_CODEUNDEFINED
51 } EFI_VFR_WARNING_CODE
;
53 typedef struct _SVFR_ERROR_HANDLE
{
54 EFI_VFR_RETURN_CODE mErrorCode
;
55 CONST CHAR8
*mErrorMsg
;
58 typedef struct _SVFR_WARNING_HANDLE
{
59 EFI_VFR_WARNING_CODE mWarningCode
;
60 CONST CHAR8
*mWarningMsg
;
61 } SVFR_WARNING_HANDLE
;
63 struct SVfrFileScopeRecord
{
65 UINT32 mWholeScopeLine
;
66 UINT32 mScopeLineStart
;
67 SVfrFileScopeRecord
*mNext
;
69 SVfrFileScopeRecord (IN CHAR8
*, IN UINT32
);
70 ~SVfrFileScopeRecord();
73 SVfrFileScopeRecord (IN CONST SVfrFileScopeRecord
&); // Prevent copy-construction
74 SVfrFileScopeRecord
& operator= (IN CONST SVfrFileScopeRecord
&); // Prevent assignment
77 class CVfrErrorHandle
{
79 CHAR8
*mInputFileName
;
80 SVFR_ERROR_HANDLE
*mVfrErrorHandleTable
;
81 SVFR_WARNING_HANDLE
*mVfrWarningHandleTable
;
82 SVfrFileScopeRecord
*mScopeRecordListHead
;
83 SVfrFileScopeRecord
*mScopeRecordListTail
;
84 BOOLEAN mWarningAsError
;
87 CVfrErrorHandle (VOID
);
88 ~CVfrErrorHandle (VOID
);
90 VOID
SetWarningAsError (IN BOOLEAN
);
91 VOID
SetInputFile (IN CHAR8
*);
92 VOID
ParseFileScopeRecord (IN CHAR8
*, IN UINT32
);
93 VOID
GetFileNameLineNum (IN UINT32
, OUT CHAR8
**, OUT UINT32
*);
94 UINT8
HandleError (IN EFI_VFR_RETURN_CODE
, IN UINT32 LineNum
= 0, IN CHAR8
*TokName
= NULL
);
95 UINT8
HandleWarning (IN EFI_VFR_WARNING_CODE
, IN UINT32 LineNum
= 0, IN CHAR8
*TokName
= NULL
);
96 VOID
PrintMsg (IN UINT32 LineNum
= 0, IN CHAR8
*TokName
= NULL
, IN CONST CHAR8
*MsgType
= "Error", IN CONST CHAR8
*ErrorMsg
= "");
99 CVfrErrorHandle (IN CONST CVfrErrorHandle
&); // Prevent copy-construction
100 CVfrErrorHandle
& operator= (IN CONST CVfrErrorHandle
&); // Prevent assignment
103 #define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
105 extern CVfrErrorHandle gCVfrErrorHandle
;