]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/VfrCompile/VfrError.h
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrError.h
CommitLineData
30fdf114 1/** @file\r
f7496d71 2\r
30fdf114
LG
3 VfrCompiler Error definition\r
4\r
f7496d71 5Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
2e351cbe 6SPDX-License-Identifier: BSD-2-Clause-Patent\r
30fdf114
LG
7\r
8**/\r
9\r
10#ifndef _VFRERROR_H_\r
11#define _VFRERROR_H_\r
12\r
13#include "Common/UefiBaseTypes.h"\r
14\r
15typedef enum {\r
16 VFR_RETURN_SUCCESS = 0,\r
17 VFR_RETURN_ERROR_SKIPED,\r
18 VFR_RETURN_FATAL_ERROR,\r
19 VFR_RETURN_MISMATCHED,\r
20 VFR_RETURN_INVALID_PARAMETER,\r
21 VFR_RETURN_OUT_FOR_RESOURCES,\r
22 VFR_RETURN_UNSUPPORTED,\r
23 VFR_RETURN_REDEFINED,\r
24 VFR_RETURN_FORMID_REDEFINED,\r
25 VFR_RETURN_QUESTIONID_REDEFINED,\r
26 VFR_RETURN_VARSTOREID_REDEFINED,\r
27 VFR_RETURN_UNDEFINED,\r
28 VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,\r
da92f276 29 VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR,\r
30fdf114
LG
30 VFR_RETURN_GET_EFIVARSTORE_ERROR,\r
31 VFR_RETURN_EFIVARSTORE_USE_ERROR,\r
32 VFR_RETURN_EFIVARSTORE_SIZE_ERROR,\r
33 VFR_RETURN_GET_NVVARSTORE_ERROR,\r
34 VFR_RETURN_QVAR_REUSE,\r
35 VFR_RETURN_FLAGS_UNSUPPORTED,\r
36 VFR_RETURN_ERROR_ARRARY_NUM,\r
37 VFR_RETURN_DATA_STRING_ERROR,\r
38 VFR_RETURN_DEFAULT_VALUE_REDEFINED,\r
39 VFR_RETURN_CONSTANT_ONLY,\r
4afd3d04 40 VFR_RETURN_VARSTORE_NAME_REDEFINED_ERROR,\r
42c808d4 41 VFR_RETURN_BIT_WIDTH_ERROR,\r
9248a471 42 VFR_RETURN_STRING_TO_UINT_OVERFLOW,\r
30fdf114
LG
43 VFR_RETURN_CODEUNDEFINED\r
44} EFI_VFR_RETURN_CODE;\r
45\r
4afd3d04
LG
46typedef enum {\r
47 VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0,\r
1d218f83 48 VFR_WARNING_ACTION_WITH_TEXT_TWO,\r
05154781 49 VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
4afd3d04
LG
50 VFR_WARNING_CODEUNDEFINED\r
51} EFI_VFR_WARNING_CODE;\r
52\r
30fdf114
LG
53typedef struct _SVFR_ERROR_HANDLE {\r
54 EFI_VFR_RETURN_CODE mErrorCode;\r
52302d4d 55 CONST CHAR8 *mErrorMsg;\r
30fdf114
LG
56} SVFR_ERROR_HANDLE;\r
57\r
4afd3d04
LG
58typedef struct _SVFR_WARNING_HANDLE {\r
59 EFI_VFR_WARNING_CODE mWarningCode;\r
60 CONST CHAR8 *mWarningMsg;\r
61} SVFR_WARNING_HANDLE;\r
62\r
30fdf114
LG
63struct SVfrFileScopeRecord {\r
64 CHAR8 *mFileName;\r
65 UINT32 mWholeScopeLine;\r
66 UINT32 mScopeLineStart;\r
67 SVfrFileScopeRecord *mNext;\r
68\r
69 SVfrFileScopeRecord (IN CHAR8 *, IN UINT32);\r
70 ~SVfrFileScopeRecord();\r
77dee0b1
HW
71\r
72private:\r
73 SVfrFileScopeRecord (IN CONST SVfrFileScopeRecord&); // Prevent copy-construction\r
74 SVfrFileScopeRecord& operator= (IN CONST SVfrFileScopeRecord&); // Prevent assignment\r
30fdf114
LG
75};\r
76\r
77class CVfrErrorHandle {\r
78private:\r
79 CHAR8 *mInputFileName;\r
80 SVFR_ERROR_HANDLE *mVfrErrorHandleTable;\r
4afd3d04 81 SVFR_WARNING_HANDLE *mVfrWarningHandleTable;\r
30fdf114
LG
82 SVfrFileScopeRecord *mScopeRecordListHead;\r
83 SVfrFileScopeRecord *mScopeRecordListTail;\r
4afd3d04 84 BOOLEAN mWarningAsError;\r
30fdf114
LG
85\r
86public:\r
87 CVfrErrorHandle (VOID);\r
88 ~CVfrErrorHandle (VOID);\r
89\r
4afd3d04 90 VOID SetWarningAsError (IN BOOLEAN);\r
30fdf114
LG
91 VOID SetInputFile (IN CHAR8 *);\r
92 VOID ParseFileScopeRecord (IN CHAR8 *, IN UINT32);\r
93 VOID GetFileNameLineNum (IN UINT32, OUT CHAR8 **, OUT UINT32 *);\r
52302d4d 94 UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);\r
4afd3d04 95 UINT8 HandleWarning (IN EFI_VFR_WARNING_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);\r
52302d4d 96 VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL, IN CONST CHAR8 *MsgType = "Error", IN CONST CHAR8 *ErrorMsg = "");\r
77dee0b1
HW
97\r
98private:\r
99 CVfrErrorHandle (IN CONST CVfrErrorHandle&); // Prevent copy-construction\r
100 CVfrErrorHandle& operator= (IN CONST CVfrErrorHandle&); // Prevent assignment\r
30fdf114
LG
101};\r
102\r
103#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)\r
104\r
105extern CVfrErrorHandle gCVfrErrorHandle;\r
106\r
107#endif\r