summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h')
-rw-r--r--src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h
new file mode 100644
index 00000000..04a26d93
--- /dev/null
+++ b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h
@@ -0,0 +1,107 @@
+/** @file
+
+ VfrCompiler Error definition
+
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _VFRERROR_H_
+#define _VFRERROR_H_
+
+#include "Common/UefiBaseTypes.h"
+
+typedef enum {
+ VFR_RETURN_SUCCESS = 0,
+ VFR_RETURN_ERROR_SKIPED,
+ VFR_RETURN_FATAL_ERROR,
+ VFR_RETURN_MISMATCHED,
+ VFR_RETURN_INVALID_PARAMETER,
+ VFR_RETURN_OUT_FOR_RESOURCES,
+ VFR_RETURN_UNSUPPORTED,
+ VFR_RETURN_REDEFINED,
+ VFR_RETURN_FORMID_REDEFINED,
+ VFR_RETURN_QUESTIONID_REDEFINED,
+ VFR_RETURN_VARSTOREID_REDEFINED,
+ VFR_RETURN_UNDEFINED,
+ VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,
+ VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR,
+ VFR_RETURN_GET_EFIVARSTORE_ERROR,
+ VFR_RETURN_EFIVARSTORE_USE_ERROR,
+ VFR_RETURN_EFIVARSTORE_SIZE_ERROR,
+ VFR_RETURN_GET_NVVARSTORE_ERROR,
+ VFR_RETURN_QVAR_REUSE,
+ VFR_RETURN_FLAGS_UNSUPPORTED,
+ VFR_RETURN_ERROR_ARRARY_NUM,
+ VFR_RETURN_DATA_STRING_ERROR,
+ VFR_RETURN_DEFAULT_VALUE_REDEFINED,
+ VFR_RETURN_CONSTANT_ONLY,
+ VFR_RETURN_VARSTORE_NAME_REDEFINED_ERROR,
+ VFR_RETURN_BIT_WIDTH_ERROR,
+ VFR_RETURN_STRING_TO_UINT_OVERFLOW,
+ VFR_RETURN_CODEUNDEFINED
+} EFI_VFR_RETURN_CODE;
+
+typedef enum {
+ VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0,
+ VFR_WARNING_ACTION_WITH_TEXT_TWO,
+ VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,
+ VFR_WARNING_CODEUNDEFINED
+} EFI_VFR_WARNING_CODE;
+
+typedef struct _SVFR_ERROR_HANDLE {
+ EFI_VFR_RETURN_CODE mErrorCode;
+ CONST CHAR8 *mErrorMsg;
+} SVFR_ERROR_HANDLE;
+
+typedef struct _SVFR_WARNING_HANDLE {
+ EFI_VFR_WARNING_CODE mWarningCode;
+ CONST CHAR8 *mWarningMsg;
+} SVFR_WARNING_HANDLE;
+
+struct SVfrFileScopeRecord {
+ CHAR8 *mFileName;
+ UINT32 mWholeScopeLine;
+ UINT32 mScopeLineStart;
+ SVfrFileScopeRecord *mNext;
+
+ SVfrFileScopeRecord (IN CHAR8 *, IN UINT32);
+ ~SVfrFileScopeRecord();
+
+private:
+ SVfrFileScopeRecord (IN CONST SVfrFileScopeRecord&); // Prevent copy-construction
+ SVfrFileScopeRecord& operator= (IN CONST SVfrFileScopeRecord&); // Prevent assignment
+};
+
+class CVfrErrorHandle {
+private:
+ CHAR8 *mInputFileName;
+ SVFR_ERROR_HANDLE *mVfrErrorHandleTable;
+ SVFR_WARNING_HANDLE *mVfrWarningHandleTable;
+ SVfrFileScopeRecord *mScopeRecordListHead;
+ SVfrFileScopeRecord *mScopeRecordListTail;
+ BOOLEAN mWarningAsError;
+
+public:
+ CVfrErrorHandle (VOID);
+ ~CVfrErrorHandle (VOID);
+
+ VOID SetWarningAsError (IN BOOLEAN);
+ VOID SetInputFile (IN CHAR8 *);
+ VOID ParseFileScopeRecord (IN CHAR8 *, IN UINT32);
+ VOID GetFileNameLineNum (IN UINT32, OUT CHAR8 **, OUT UINT32 *);
+ UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);
+ UINT8 HandleWarning (IN EFI_VFR_WARNING_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);
+ VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL, IN CONST CHAR8 *MsgType = "Error", IN CONST CHAR8 *ErrorMsg = "");
+
+private:
+ CVfrErrorHandle (IN CONST CVfrErrorHandle&); // Prevent copy-construction
+ CVfrErrorHandle& operator= (IN CONST CVfrErrorHandle&); // Prevent assignment
+};
+
+#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
+
+extern CVfrErrorHandle gCVfrErrorHandle;
+
+#endif