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
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.
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
,
35 VFR_RETURN_FORMID_REDEFINED
,
36 VFR_RETURN_QUESTIONID_REDEFINED
,
37 VFR_RETURN_VARSTOREID_REDEFINED
,
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_DEFAULT_VALUE_REDEFINED
,
49 VFR_RETURN_CONSTANT_ONLY
,
50 VFR_RETURN_CODEUNDEFINED
51 } EFI_VFR_RETURN_CODE
;
53 typedef struct _SVFR_ERROR_HANDLE
{
54 EFI_VFR_RETURN_CODE mErrorCode
;
58 struct SVfrFileScopeRecord
{
60 UINT32 mWholeScopeLine
;
61 UINT32 mScopeLineStart
;
62 SVfrFileScopeRecord
*mNext
;
64 SVfrFileScopeRecord (IN INT8
*, IN UINT32
);
65 ~SVfrFileScopeRecord();
68 class CVfrErrorHandle
{
71 SVFR_ERROR_HANDLE
*mVfrErrorHandleTable
;
72 SVfrFileScopeRecord
*mScopeRecordListHead
;
73 SVfrFileScopeRecord
*mScopeRecordListTail
;
76 CVfrErrorHandle (VOID
);
77 ~CVfrErrorHandle (VOID
);
79 VOID
SetInputFile (IN INT8
*);
80 VOID
ParseFileScopeRecord (IN INT8
*, IN UINT32
);
81 VOID
GetFileNameLineNum (IN UINT32
, OUT INT8
**, OUT UINT32
*);
82 UINT8
HandleError (IN EFI_VFR_RETURN_CODE
, IN UINT32 LineNum
= 0, IN INT8
*TokName
= "\0");
83 VOID
PrintMsg (IN UINT32 LineNum
= 0, IN INT8
*TokName
= "\0", IN INT8
*MsgType
= "Error", IN INT8
*ErrorMsg
= "\0");
86 #define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
88 extern CVfrErrorHandle gCVfrErrorHandle
;