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