summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-24 07:29:31 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-24 07:29:31 +0000
commit95d675b5272d76105e2109a11d8b35f416be8b29 (patch)
treed8c0e4c20e5c30adce62c93d681706428ad75b1f /EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
parentc7f33ca42470dc87bc41a8583f427883123d67a1 (diff)
downloadedk2-platforms-95d675b5272d76105e2109a11d8b35f416be8b29.tar.xz
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
1.1) Bug fixes. (For details, please check Documents & files: Snapshot/Release Notes at https://edk.tianocore.org/servlets/ProjectDocumentList?folderID=43&expandFolder=43&folderID=6) 1.2) Add new UEFI protocol definitions for AbsolutePointer, FormBrowser2, HiiConfigAccess, HiiConfigRouting, HiiDatabase, HiiFont, HiiImage, HiiString, SimpleTextInputEx, DPC protocol. 1.3) Add Smbios 2.5, 2.6 supports. Incompatible changes hilighted: 1) EFI_MANAGED_NETWORK_PROTOCOL_GUID changed. 2) EFI_IP4_IPCONFIG_DATA changed. 2) Add in EdkCompatibilityPkg/EdkCompatibilityPkg.dsc to build all libraries in this package. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4624 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h')
-rw-r--r--EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h b/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
new file mode 100644
index 0000000000..5e8ac51ec9
--- /dev/null
+++ b/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
@@ -0,0 +1,67 @@
+#ifndef _VFRERROR_H_
+#define _VFRERROR_H_
+
+#include "Tiano.h"
+#include "EfiTypes.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_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_CODEUNDEFINED
+} EFI_VFR_RETURN_CODE;
+
+typedef struct _SVFR_ERROR_HANDLE {
+ EFI_VFR_RETURN_CODE mErrorCode;
+ INT8 *mErrorMsg;
+} SVFR_ERROR_HANDLE;
+
+struct SVfrFileScopeRecord {
+ INT8 *mFileName;
+ UINT32 mWholeScopeLine;
+ UINT32 mScopeLineStart;
+ SVfrFileScopeRecord *mNext;
+
+ SVfrFileScopeRecord (IN INT8 *, IN UINT32);
+ ~SVfrFileScopeRecord();
+};
+
+class CVfrErrorHandle {
+private:
+ SVFR_ERROR_HANDLE *mVfrErrorHandleTable;
+ SVfrFileScopeRecord *mScopeRecordListHead;
+ SVfrFileScopeRecord *mScopeRecordListTail;
+
+public:
+ CVfrErrorHandle (VOID);
+ ~CVfrErrorHandle (VOID);
+
+ VOID ParseFileScopeRecord (IN INT8 *, IN UINT32);
+ VOID GetFileNameLineNum (IN UINT32, OUT INT8 **, OUT UINT32 *);
+ UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN INT8 *TokName = "\0");
+ VOID PrintError (IN UINT32 LineNum = 0, IN INT8 *TokName = "\0", IN INT8 *ErrorMsg = "\0");
+};
+
+#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
+
+extern CVfrErrorHandle gCVfrErrorHandle;
+
+#endif