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