]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
1) Sync EdkCompatibilityPkg with EDK 1.04. The changes includes:
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / UefiVfrCompile / VfrError.h
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h b/EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/VfrError.h
new file mode 100644 (file)
index 0000000..5e8ac51
--- /dev/null
@@ -0,0 +1,67 @@
+#ifndef _VFRERROR_H_\r
+#define _VFRERROR_H_\r
+\r
+#include "Tiano.h"\r
+#include "EfiTypes.h"\r
+\r
+typedef enum {\r
+  VFR_RETURN_SUCCESS = 0,\r
+  VFR_RETURN_ERROR_SKIPED,\r
+  VFR_RETURN_FATAL_ERROR,\r
+  VFR_RETURN_MISMATCHED,\r
+  VFR_RETURN_INVALID_PARAMETER,\r
+  VFR_RETURN_OUT_FOR_RESOURCES,\r
+  VFR_RETURN_UNSUPPORTED,\r
+  VFR_RETURN_REDEFINED,\r
+  VFR_RETURN_FORMID_REDEFINED,\r
+  VFR_RETURN_QUESTIONID_REDEFINED,\r
+  VFR_RETURN_VARSTOREID_REDEFINED,\r
+  VFR_RETURN_UNDEFINED,\r
+  VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,\r
+  VFR_RETURN_GET_EFIVARSTORE_ERROR,\r
+  VFR_RETURN_EFIVARSTORE_USE_ERROR,\r
+  VFR_RETURN_EFIVARSTORE_SIZE_ERROR,\r
+  VFR_RETURN_GET_NVVARSTORE_ERROR,\r
+  VFR_RETURN_QVAR_REUSE,\r
+  VFR_RETURN_FLAGS_UNSUPPORTED,\r
+  VFR_RETURN_ERROR_ARRARY_NUM,\r
+  VFR_RETURN_DATA_STRING_ERROR,\r
+  VFR_RETURN_CODEUNDEFINED\r
+} EFI_VFR_RETURN_CODE;\r
+\r
+typedef struct _SVFR_ERROR_HANDLE {\r
+  EFI_VFR_RETURN_CODE    mErrorCode;\r
+  INT8                   *mErrorMsg;\r
+} SVFR_ERROR_HANDLE;\r
+\r
+struct SVfrFileScopeRecord {\r
+  INT8                  *mFileName;\r
+  UINT32                mWholeScopeLine;\r
+  UINT32                mScopeLineStart;\r
+  SVfrFileScopeRecord *mNext;\r
+\r
+  SVfrFileScopeRecord (IN INT8 *, IN UINT32);\r
+  ~SVfrFileScopeRecord();\r
+};\r
+\r
+class CVfrErrorHandle {\r
+private:\r
+  SVFR_ERROR_HANDLE   *mVfrErrorHandleTable;\r
+  SVfrFileScopeRecord *mScopeRecordListHead;\r
+  SVfrFileScopeRecord *mScopeRecordListTail;\r
+\r
+public:\r
+  CVfrErrorHandle (VOID);\r
+  ~CVfrErrorHandle (VOID);\r
+\r
+  VOID  ParseFileScopeRecord (IN INT8 *, IN UINT32);\r
+  VOID  GetFileNameLineNum (IN UINT32, OUT INT8 **, OUT UINT32 *);\r
+  UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN INT8 *TokName = "\0");\r
+  VOID  PrintError (IN UINT32 LineNum = 0, IN INT8 *TokName = "\0", IN INT8 *ErrorMsg = "\0");\r
+};\r
+\r
+#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)\r
+\r
+extern CVfrErrorHandle gCVfrErrorHandle;\r
+\r
+#endif\r