VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/VfrCompile/VfrError.h

Last change on this file was 80721, checked in by vboxsync, 6 years ago

Devices/EFI/FirmwareNew: Start upgrade process to edk2-stable201908 (compiles on Windows and works to some extent), bugref:4643

  • Property svn:eol-style set to native
File size: 3.2 KB
Line 
1/** @file
2
3 VfrCompiler Error definition
4
5Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
6SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef _VFRERROR_H_
11#define _VFRERROR_H_
12
13#include "Common/UefiBaseTypes.h"
14
15typedef enum {
16 VFR_RETURN_SUCCESS = 0,
17 VFR_RETURN_ERROR_SKIPED,
18 VFR_RETURN_FATAL_ERROR,
19 VFR_RETURN_MISMATCHED,
20 VFR_RETURN_INVALID_PARAMETER,
21 VFR_RETURN_OUT_FOR_RESOURCES,
22 VFR_RETURN_UNSUPPORTED,
23 VFR_RETURN_REDEFINED,
24 VFR_RETURN_FORMID_REDEFINED,
25 VFR_RETURN_QUESTIONID_REDEFINED,
26 VFR_RETURN_VARSTOREID_REDEFINED,
27 VFR_RETURN_UNDEFINED,
28 VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,
29 VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR,
30 VFR_RETURN_GET_EFIVARSTORE_ERROR,
31 VFR_RETURN_EFIVARSTORE_USE_ERROR,
32 VFR_RETURN_EFIVARSTORE_SIZE_ERROR,
33 VFR_RETURN_GET_NVVARSTORE_ERROR,
34 VFR_RETURN_QVAR_REUSE,
35 VFR_RETURN_FLAGS_UNSUPPORTED,
36 VFR_RETURN_ERROR_ARRARY_NUM,
37 VFR_RETURN_DATA_STRING_ERROR,
38 VFR_RETURN_DEFAULT_VALUE_REDEFINED,
39 VFR_RETURN_CONSTANT_ONLY,
40 VFR_RETURN_VARSTORE_NAME_REDEFINED_ERROR,
41 VFR_RETURN_BIT_WIDTH_ERROR,
42 VFR_RETURN_STRING_TO_UINT_OVERFLOW,
43 VFR_RETURN_CODEUNDEFINED
44} EFI_VFR_RETURN_CODE;
45
46typedef enum {
47 VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0,
48 VFR_WARNING_ACTION_WITH_TEXT_TWO,
49 VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE,
50 VFR_WARNING_CODEUNDEFINED
51} EFI_VFR_WARNING_CODE;
52
53typedef struct _SVFR_ERROR_HANDLE {
54 EFI_VFR_RETURN_CODE mErrorCode;
55 CONST CHAR8 *mErrorMsg;
56} SVFR_ERROR_HANDLE;
57
58typedef struct _SVFR_WARNING_HANDLE {
59 EFI_VFR_WARNING_CODE mWarningCode;
60 CONST CHAR8 *mWarningMsg;
61} SVFR_WARNING_HANDLE;
62
63struct SVfrFileScopeRecord {
64 CHAR8 *mFileName;
65 UINT32 mWholeScopeLine;
66 UINT32 mScopeLineStart;
67 SVfrFileScopeRecord *mNext;
68
69 SVfrFileScopeRecord (IN CHAR8 *, IN UINT32);
70 ~SVfrFileScopeRecord();
71
72private:
73 SVfrFileScopeRecord (IN CONST SVfrFileScopeRecord&); // Prevent copy-construction
74 SVfrFileScopeRecord& operator= (IN CONST SVfrFileScopeRecord&); // Prevent assignment
75};
76
77class CVfrErrorHandle {
78private:
79 CHAR8 *mInputFileName;
80 SVFR_ERROR_HANDLE *mVfrErrorHandleTable;
81 SVFR_WARNING_HANDLE *mVfrWarningHandleTable;
82 SVfrFileScopeRecord *mScopeRecordListHead;
83 SVfrFileScopeRecord *mScopeRecordListTail;
84 BOOLEAN mWarningAsError;
85
86public:
87 CVfrErrorHandle (VOID);
88 ~CVfrErrorHandle (VOID);
89
90 VOID SetWarningAsError (IN BOOLEAN);
91 VOID SetInputFile (IN CHAR8 *);
92 VOID ParseFileScopeRecord (IN CHAR8 *, IN UINT32);
93 VOID GetFileNameLineNum (IN UINT32, OUT CHAR8 **, OUT UINT32 *);
94 UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);
95 UINT8 HandleWarning (IN EFI_VFR_WARNING_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);
96 VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL, IN CONST CHAR8 *MsgType = "Error", IN CONST CHAR8 *ErrorMsg = "");
97
98private:
99 CVfrErrorHandle (IN CONST CVfrErrorHandle&); // Prevent copy-construction
100 CVfrErrorHandle& operator= (IN CONST CVfrErrorHandle&); // Prevent assignment
101};
102
103#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
104
105extern CVfrErrorHandle gCVfrErrorHandle;
106
107#endif
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette