]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / UefiVfrCompile / VfrError.h
CommitLineData
95d675b5 1#ifndef _VFRERROR_H_\r
2#define _VFRERROR_H_\r
3\r
4#include "Tiano.h"\r
5#include "EfiTypes.h"\r
6\r
7typedef enum {\r
8 VFR_RETURN_SUCCESS = 0,\r
9 VFR_RETURN_ERROR_SKIPED,\r
10 VFR_RETURN_FATAL_ERROR,\r
11 VFR_RETURN_MISMATCHED,\r
12 VFR_RETURN_INVALID_PARAMETER,\r
13 VFR_RETURN_OUT_FOR_RESOURCES,\r
14 VFR_RETURN_UNSUPPORTED,\r
15 VFR_RETURN_REDEFINED,\r
16 VFR_RETURN_FORMID_REDEFINED,\r
17 VFR_RETURN_QUESTIONID_REDEFINED,\r
18 VFR_RETURN_VARSTOREID_REDEFINED,\r
19 VFR_RETURN_UNDEFINED,\r
20 VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,\r
21 VFR_RETURN_GET_EFIVARSTORE_ERROR,\r
22 VFR_RETURN_EFIVARSTORE_USE_ERROR,\r
23 VFR_RETURN_EFIVARSTORE_SIZE_ERROR,\r
24 VFR_RETURN_GET_NVVARSTORE_ERROR,\r
25 VFR_RETURN_QVAR_REUSE,\r
26 VFR_RETURN_FLAGS_UNSUPPORTED,\r
27 VFR_RETURN_ERROR_ARRARY_NUM,\r
28 VFR_RETURN_DATA_STRING_ERROR,\r
29 VFR_RETURN_CODEUNDEFINED\r
30} EFI_VFR_RETURN_CODE;\r
31\r
32typedef struct _SVFR_ERROR_HANDLE {\r
33 EFI_VFR_RETURN_CODE mErrorCode;\r
34 INT8 *mErrorMsg;\r
35} SVFR_ERROR_HANDLE;\r
36\r
37struct SVfrFileScopeRecord {\r
38 INT8 *mFileName;\r
39 UINT32 mWholeScopeLine;\r
40 UINT32 mScopeLineStart;\r
41 SVfrFileScopeRecord *mNext;\r
42\r
43 SVfrFileScopeRecord (IN INT8 *, IN UINT32);\r
44 ~SVfrFileScopeRecord();\r
45};\r
46\r
47class CVfrErrorHandle {\r
48private:\r
49 SVFR_ERROR_HANDLE *mVfrErrorHandleTable;\r
50 SVfrFileScopeRecord *mScopeRecordListHead;\r
51 SVfrFileScopeRecord *mScopeRecordListTail;\r
52\r
53public:\r
54 CVfrErrorHandle (VOID);\r
55 ~CVfrErrorHandle (VOID);\r
56\r
57 VOID ParseFileScopeRecord (IN INT8 *, IN UINT32);\r
58 VOID GetFileNameLineNum (IN UINT32, OUT INT8 **, OUT UINT32 *);\r
59 UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN INT8 *TokName = "\0");\r
60 VOID PrintError (IN UINT32 LineNum = 0, IN INT8 *TokName = "\0", IN INT8 *ErrorMsg = "\0");\r
61};\r
62\r
63#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)\r
64\r
65extern CVfrErrorHandle gCVfrErrorHandle;\r
66\r
67#endif\r