4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VfrCompiler Error definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _VFRERROR_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _VFRERROR_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "Common/UefiBaseTypes.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_SUCCESS = 0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_ERROR_SKIPED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_FATAL_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_MISMATCHED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_INVALID_PARAMETER,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_OUT_FOR_RESOURCES,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_UNSUPPORTED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_REDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_FORMID_REDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_QUESTIONID_REDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_VARSTOREID_REDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_UNDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_VAR_NOTDEFINED_BY_QUESTION,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_VARSTORE_DATATYPE_REDEFINED_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_GET_EFIVARSTORE_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_EFIVARSTORE_USE_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_EFIVARSTORE_SIZE_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_GET_NVVARSTORE_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_QVAR_REUSE,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_FLAGS_UNSUPPORTED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_ERROR_ARRARY_NUM,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_DATA_STRING_ERROR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_DEFAULT_VALUE_REDEFINED,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_CONSTANT_ONLY,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VFR_RETURN_CODEUNDEFINED
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_VFR_RETURN_CODE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _SVFR_ERROR_HANDLE {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_VFR_RETURN_CODE mErrorCode;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CONST CHAR8 *mErrorMsg;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} SVFR_ERROR_HANDLE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncstruct SVfrFileScopeRecord {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR8 *mFileName;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 mWholeScopeLine;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 mScopeLineStart;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SVfrFileScopeRecord *mNext;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SVfrFileScopeRecord (IN CHAR8 *, IN UINT32);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ~SVfrFileScopeRecord();
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass CVfrErrorHandle {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncprivate:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR8 *mInputFileName;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SVFR_ERROR_HANDLE *mVfrErrorHandleTable;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SVfrFileScopeRecord *mScopeRecordListHead;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SVfrFileScopeRecord *mScopeRecordListTail;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncpublic:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CVfrErrorHandle (VOID);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ~CVfrErrorHandle (VOID);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID SetInputFile (IN CHAR8 *);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID ParseFileScopeRecord (IN CHAR8 *, IN UINT32);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID GetFileNameLineNum (IN UINT32, OUT CHAR8 **, OUT UINT32 *);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 HandleError (IN EFI_VFR_RETURN_CODE, IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID PrintMsg (IN UINT32 LineNum = 0, IN CHAR8 *TokName = NULL, IN CONST CHAR8 *MsgType = "Error", IN CONST CHAR8 *ErrorMsg = "");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define CHECK_ERROR_RETURN(f, v) do { EFI_VFR_RETURN_CODE r; if ((r = (f)) != (v)) { return r; } } while (0)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CVfrErrorHandle gCVfrErrorHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif