/** @file\r
- \r
+\r
VfrCompiler Error definition\r
\r
-Copyright (c) 2004 - 2008, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
VFR_RETURN_VARSTOREID_REDEFINED,\r
VFR_RETURN_UNDEFINED,\r
VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,\r
+ VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR,\r
VFR_RETURN_GET_EFIVARSTORE_ERROR,\r
VFR_RETURN_EFIVARSTORE_USE_ERROR,\r
VFR_RETURN_EFIVARSTORE_SIZE_ERROR,\r
VFR_RETURN_DATA_STRING_ERROR,\r
VFR_RETURN_DEFAULT_VALUE_REDEFINED,\r
VFR_RETURN_CONSTANT_ONLY,\r
+ VFR_RETURN_VARSTORE_NAME_REDEFINED_ERROR,\r
+ VFR_RETURN_BIT_WIDTH_ERROR,\r
+ VFR_RETURN_STRING_TO_UINT_OVERFLOW,\r
VFR_RETURN_CODEUNDEFINED\r
} EFI_VFR_RETURN_CODE;\r
\r
+typedef enum {\r
+ VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0,\r
+ VFR_WARNING_ACTION_WITH_TEXT_TWO,\r
+ VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,\r
+ VFR_WARNING_CODEUNDEFINED\r
+} EFI_VFR_WARNING_CODE;\r
+\r
typedef struct _SVFR_ERROR_HANDLE {\r
EFI_VFR_RETURN_CODE mErrorCode;\r
- CHAR8 *mErrorMsg;\r
+ CONST CHAR8 *mErrorMsg;\r
} SVFR_ERROR_HANDLE;\r
\r
+typedef struct _SVFR_WARNING_HANDLE {\r
+ EFI_VFR_WARNING_CODE mWarningCode;\r
+ CONST CHAR8 *mWarningMsg;\r
+} SVFR_WARNING_HANDLE;\r
+\r
struct SVfrFileScopeRecord {\r
CHAR8 *mFileName;\r
UINT32 mWholeScopeLine;\r
\r
SVfrFileScopeRecord (IN CHAR8 *, IN UINT32);\r
~SVfrFileScopeRecord();\r
+\r
+private:\r
+ SVfrFileScopeRecord (IN CONST SVfrFileScopeRecord&); // Prevent copy-construction\r
+ SVfrFileScopeRecord& operator= (IN CONST SVfrFileScopeRecord&); // Prevent assignment\r
};\r
\r
class CVfrErrorHandle {\r
private:\r
CHAR8 *mInputFileName;\r
SVFR_ERROR_HANDLE *mVfrErrorHandleTable;\r
+ SVFR_WARNING_HANDLE *mVfrWarningHandleTable;\r
SVfrFileScopeRecord *mScopeRecordListHead;\r
SVfrFileScopeRecord *mScopeRecordListTail;\r
+ BOOLEAN mWarningAsError;\r
\r
public:\r
CVfrErrorHandle (VOID);\r
~CVfrErrorHandle (VOID);\r
\r
+ VOID SetWarningAsError (IN BOOLEAN);\r
VOID SetInputFile (IN CHAR8 *);\r
VOID ParseFileScopeRecord (IN CHAR8 *, IN UINT32);\r
VOID GetFileNameLineNum (IN UINT32, OUT CHAR8 **, OUT UINT32 *);\r
- UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = "\0");\r
- VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = "\0", IN CHAR8 *MsgType = "Error", IN CHAR8 *ErrorMsg = "\0");\r
+ UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);\r
+ UINT8 HandleWarning (IN EFI_VFR_WARNING_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);\r
+ VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL, IN CONST CHAR8 *MsgType = "Error", IN CONST CHAR8 *ErrorMsg = "");\r
+\r
+private:\r
+ CVfrErrorHandle (IN CONST CVfrErrorHandle&); // Prevent copy-construction\r
+ CVfrErrorHandle& operator= (IN CONST CVfrErrorHandle&); // Prevent assignment\r
};\r
\r
#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)\r