]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / UefiVfrCompile / VfrError.h
CommitLineData
5b19df7f
LG
1/*++\r
2\r
4b1e1121
HT
3Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials\r
5b19df7f
LG
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
3e99020d 14 VfrError.h\r
5b19df7f
LG
15\r
16Abstract:\r
17\r
18--*/\r
19\r
95d675b5 20#ifndef _VFRERROR_H_\r
21#define _VFRERROR_H_\r
22\r
23#include "Tiano.h"\r
24#include "EfiTypes.h"\r
25\r
26typedef enum {\r
27 VFR_RETURN_SUCCESS = 0,\r
28 VFR_RETURN_ERROR_SKIPED,\r
29 VFR_RETURN_FATAL_ERROR,\r
30 VFR_RETURN_MISMATCHED,\r
31 VFR_RETURN_INVALID_PARAMETER,\r
32 VFR_RETURN_OUT_FOR_RESOURCES,\r
33 VFR_RETURN_UNSUPPORTED,\r
34 VFR_RETURN_REDEFINED,\r
35 VFR_RETURN_FORMID_REDEFINED,\r
36 VFR_RETURN_QUESTIONID_REDEFINED,\r
37 VFR_RETURN_VARSTOREID_REDEFINED,\r
38 VFR_RETURN_UNDEFINED,\r
39 VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,\r
40 VFR_RETURN_GET_EFIVARSTORE_ERROR,\r
41 VFR_RETURN_EFIVARSTORE_USE_ERROR,\r
42 VFR_RETURN_EFIVARSTORE_SIZE_ERROR,\r
43 VFR_RETURN_GET_NVVARSTORE_ERROR,\r
44 VFR_RETURN_QVAR_REUSE,\r
45 VFR_RETURN_FLAGS_UNSUPPORTED,\r
46 VFR_RETURN_ERROR_ARRARY_NUM,\r
47 VFR_RETURN_DATA_STRING_ERROR,\r
3e99020d
LG
48 VFR_RETURN_DEFAULT_VALUE_REDEFINED,\r
49 VFR_RETURN_CONSTANT_ONLY,\r
95d675b5 50 VFR_RETURN_CODEUNDEFINED\r
51} EFI_VFR_RETURN_CODE;\r
52\r
53typedef struct _SVFR_ERROR_HANDLE {\r
54 EFI_VFR_RETURN_CODE mErrorCode;\r
55 INT8 *mErrorMsg;\r
56} SVFR_ERROR_HANDLE;\r
57\r
58struct SVfrFileScopeRecord {\r
59 INT8 *mFileName;\r
60 UINT32 mWholeScopeLine;\r
61 UINT32 mScopeLineStart;\r
62 SVfrFileScopeRecord *mNext;\r
63\r
64 SVfrFileScopeRecord (IN INT8 *, IN UINT32);\r
65 ~SVfrFileScopeRecord();\r
66};\r
67\r
68class CVfrErrorHandle {\r
69private:\r
3e99020d 70 INT8 *mInputFileName;\r
95d675b5 71 SVFR_ERROR_HANDLE *mVfrErrorHandleTable;\r
72 SVfrFileScopeRecord *mScopeRecordListHead;\r
73 SVfrFileScopeRecord *mScopeRecordListTail;\r
74\r
75public:\r
76 CVfrErrorHandle (VOID);\r
77 ~CVfrErrorHandle (VOID);\r
78\r
3e99020d 79 VOID SetInputFile (IN INT8 *);\r
95d675b5 80 VOID ParseFileScopeRecord (IN INT8 *, IN UINT32);\r
81 VOID GetFileNameLineNum (IN UINT32, OUT INT8 **, OUT UINT32 *);\r
82 UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN INT8 *TokName = "\0");\r
3e99020d 83 VOID PrintMsg (IN UINT32 LineNum = 0, IN INT8 *TokName = "\0", IN INT8 *MsgType = "Error", IN INT8 *ErrorMsg = "\0");\r
95d675b5 84};\r
85\r
86#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)\r
87\r
88extern CVfrErrorHandle gCVfrErrorHandle;\r
89\r
90#endif\r