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
,
16 VFR_RETURN_FORMID_REDEFINED
,
17 VFR_RETURN_QUESTIONID_REDEFINED
,
18 VFR_RETURN_VARSTOREID_REDEFINED
,
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
;
32 typedef struct _SVFR_ERROR_HANDLE
{
33 EFI_VFR_RETURN_CODE mErrorCode
;
37 struct SVfrFileScopeRecord
{
39 UINT32 mWholeScopeLine
;
40 UINT32 mScopeLineStart
;
41 SVfrFileScopeRecord
*mNext
;
43 SVfrFileScopeRecord (IN INT8
*, IN UINT32
);
44 ~SVfrFileScopeRecord();
47 class CVfrErrorHandle
{
49 SVFR_ERROR_HANDLE
*mVfrErrorHandleTable
;
50 SVfrFileScopeRecord
*mScopeRecordListHead
;
51 SVfrFileScopeRecord
*mScopeRecordListTail
;
54 CVfrErrorHandle (VOID
);
55 ~CVfrErrorHandle (VOID
);
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");
63 #define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
65 extern CVfrErrorHandle gCVfrErrorHandle
;