VfrFormPkg.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
The definition of CFormPkg's member function
Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _EFIIFRCLASS_H_
#define _EFIIFRCLASS_H_
#include "string.h"
#include "EfiVfr.h"
#include "VfrError.h"
#include "VfrUtilityLib.h"
#define NO_QST_REFED "no question refered"
struct PACKAGE_DATA {
};
/*
* The functions below are used for flags setting
*/
static inline BOOLEAN _FLAGS_ZERO (
)
{
return Flags == 0;
}
static inline VOID _FLAG_CLEAR (
)
{
}
static inline UINT8 _FLAG_TEST_AND_CLEAR (
)
{
return Ret;
}
)
{
}
/*
* The definition of CIfrBin
*/
typedef enum {
} ASSIGN_FLAG;
struct SPendingAssign {
struct SPendingAssign *mNext;
~SPendingAssign ();
};
struct SBufferNode {
struct SBufferNode *mNext;
};
typedef struct {
~CFormPkg ();
EFI_VFR_RETURN_CODE AssignPending (IN CHAR8 *, IN VOID *, IN UINT32, IN UINT32, IN CONST CHAR8 *Msg = NULL);
bool HavePendingUnassigned (VOID);
);
};
extern CVfrStringDB gCVfrStringDB;
struct SIfrRecord {
SIfrRecord (VOID);
~SIfrRecord (VOID);
};
#define EFI_IFR_RECORDINFO_IDX_INVALUD 0xFFFFFF
#define EFI_IFR_RECORDINFO_IDX_START 0x0
bool mSwitch;
~CIfrRecordInfoDB (VOID);
}
}
};
extern CIfrRecordInfoDB gCIfrRecordInfoDB;
/*
* The definition of CIfrObj
*/
CIfrObj (IN UINT8 OpCode, OUT CHAR8 **IfrObj = NULL, IN UINT8 ObjBinLen = 0, IN BOOLEAN DelayEmit = FALSE);
}
return mObjBinBuf;
}
return mObjBinLen;
}
return TRUE;
} else {
return FALSE;
}
}
mObjBinLen -= Size;
return TRUE;
} else {
return FALSE;
}
}
};
/*
* The definition of CIfrOpHeader
*/
}
}
}
}
}
}
}
}
};
extern UINT8 gScopeCount;
/*
* The definition of CIfrStatementHeader
*/
}
return mHeader;
}
}
}
};
/*
* The definition of CIfrQuestionHeader
*/
#define EFI_IFR_QUESTION_FLAG_DEFAULT 0
}
return mHeader->QuestionId;
}
return mHeader->VarStoreId;
}
}
}
}
}
}
}
}
}
//
// ignore NVAccessFlag
//
}
//
// Set LateCheck Flag to compatible for framework flag
// but it uses 0x20 as its flag, if in the future UEFI may take this flag
//
}
}
}
};
/*
* The definition of CIfrMinMaxStepData
*/
CIfrMinMaxStepData (MINMAXSTEP_DATA *DataAddr, BOOLEAN NumericOpcode=FALSE) : mMinMaxStepData (DataAddr) {
ValueIsSet = FALSE;
}
if (!ValueIsSet) {
ValueIsSet = TRUE;
} else {
}
}
}
}
if (!ValueIsSet) {
ValueIsSet = TRUE;
} else {
}
}
}
}
if (!ValueIsSet) {
ValueIsSet = TRUE;
} else {
}
}
}
}
if (!ValueIsSet) {
ValueIsSet = TRUE;
} else {
}
}
}
}
switch (VarType) {
case EFI_IFR_TYPE_NUM_SIZE_64:
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
break;
case EFI_IFR_TYPE_NUM_SIZE_8:
break;
default:
break;
}
return MinValue;
}
switch (VarType) {
case EFI_IFR_TYPE_NUM_SIZE_64:
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
break;
case EFI_IFR_TYPE_NUM_SIZE_8:
break;
default:
break;
}
return MaxValue;
}
switch (VarType) {
case EFI_IFR_TYPE_NUM_SIZE_64:
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
break;
case EFI_IFR_TYPE_NUM_SIZE_8:
break;
default:
break;
}
return MaxValue;
}
BOOLEAN IsNumericOpcode () {
return IsNumeric;
}
};
/*
* The definition of all of the UEFI IFR Objects
*/
}
}
}
}
}
}
};
};
}
}
}
};
#define EFI_FORM_ID_MAX 0xFFFF
}
}
};
}
if (FormId == 0) {
//
// FormId can't be 0.
//
return VFR_RETURN_INVALID_PARAMETER;
}
return VFR_RETURN_FORMID_REDEFINED;
}
return VFR_RETURN_SUCCESS;
}
}
};
CIfrFormMap () : CIfrObj (EFI_IFR_FORM_MAP_OP, (CHAR8 **)&mFormMap, sizeof (EFI_IFR_FORM_MAP), TRUE),
}
if (FormId == 0) {
//
// FormId can't be 0.
//
return VFR_RETURN_INVALID_PARAMETER;
}
return VFR_RETURN_FORMID_REDEFINED;
}
return VFR_RETURN_SUCCESS;
}
if (ExpendObjBin (sizeof (EFI_IFR_FORM_MAP_METHOD))) {
IncLength (sizeof (EFI_IFR_FORM_MAP_METHOD));
mMethodMap ++;
}
}
};
CIfrVarStore () : CIfrObj (EFI_IFR_VARSTORE_OP, (CHAR8 **)&mVarStore, sizeof (EFI_IFR_VARSTORE), TRUE),
}
}
}
}
if (Len != 0) {
}
}
}
}
};
CIfrVarStoreEfi () : CIfrObj (EFI_IFR_VARSTORE_EFI_OP, (CHAR8 **)&mVarStoreEfi, sizeof (EFI_IFR_VARSTORE_EFI), TRUE),
mVarStoreEfi->Size = 0;
}
}
}
}
}
if (Len != 0) {
}
}
}
}
Len = sizeof (EFI_IFR_VARSTORE_EFI);
} else {
}
}
};
}
}
}
};
}
}
};
}
};
};
}
}
};
static EFI_IFR_TYPE_VALUE gZeroEfiIfrTypeValue = {0, };
}
}
}
}
};
};
};
};
CIfrGet (
}
}
};
CIfrSet (
}
}
};
}
}
}
};
}
}
};
}
}
};
}
}
}
};
}
}
}
}
};
}
}
}
}
}
};
}
};
}
}
};
}
~CIfrCheckBox () {
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
}
}
}
}
};
}
}
};
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
}
}
}
}
}
};
class CIfrNumeric : public CIfrObj, public CIfrOpHeader, public CIfrQuestionHeader, public CIfrMinMaxStepData {
}
~CIfrNumeric () {
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
if (LFlags & EFI_IFR_DISPLAY) {
} else {
}
return VFR_RETURN_SUCCESS;
}
};
class CIfrOneOf : public CIfrObj, public CIfrOpHeader, public CIfrQuestionHeader, public CIfrMinMaxStepData {
}
~CIfrOneOf () {
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
if (LFlags & EFI_IFR_DISPLAY) {
} else {
}
return VFR_RETURN_SUCCESS;
}
};
}
~CIfrString () {
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
}
}
}
}
};
}
~CIfrPassword () {
}
}
}
};
mOrderedList->MaxContainers = 0;
mOrderedList->Flags = 0;
}
~CIfrOrderedList () {
}
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
}
}
}
};
}
if (Ret != VFR_RETURN_SUCCESS) {
return Ret;
}
}
}
}
}
}
};
};
};
};
}
}
};
}
}
};
mRefresh->RefreshInterval = 0;
}
}
};
}
}
};
}
}
};
mOneOfOption->Flags = 0;
}
}
}
}
}
}
}
}
return mOneOfOption->Flags;
}
};
}
}
};
}
}
};
}
}
};
}
}
}
}
};
}
};
}
};
CIfrTimeout (IN UINT16 Timeout = 0) : CIfrObj (EFI_IFR_GUID_OP, (CHAR8 **)&mTimeout, sizeof (EFI_IFR_GUID_TIMEOUT)),
}
}
};
}
}
}
};
CIfrDup (
}
};
}
) {
if (QuestionId != EFI_QUESTION_ID_INVALID) {
} else {
gCFormPkg.AssignPending (VarIdStr, (VOID *)(&mEqIdId->QuestionId1), sizeof (EFI_QUESTION_ID), LineNo, NO_QST_REFED);
}
}
) {
if (QuestionId != EFI_QUESTION_ID_INVALID) {
} else {
gCFormPkg.AssignPending (VarIdStr, (VOID *)(&mEqIdId->QuestionId2), sizeof (EFI_QUESTION_ID), LineNo, NO_QST_REFED);
}
}
};
}
) {
if (QuestionId != EFI_QUESTION_ID_INVALID) {
} else {
gCFormPkg.AssignPending (VarIdStr, (VOID *)(&mEqIdVal->QuestionId), sizeof (EFI_QUESTION_ID), LineNo, NO_QST_REFED);
}
}
}
};
) : CIfrObj (EFI_IFR_EQ_ID_VAL_LIST_OP, (CHAR8 **)&mEqIdVList, sizeof (EFI_IFR_EQ_ID_VAL_LIST), TRUE),
mEqIdVList->ListLength = 0;
mEqIdVList->ValueList[0] = 0;
}
) {
}
) {
if (QuestionId != EFI_QUESTION_ID_INVALID) {
} else {
gCFormPkg.AssignPending (VarIdStr, (VOID *)(&mEqIdVList->QuestionId), sizeof (EFI_QUESTION_ID), LineNo, NO_QST_REFED);
}
}
}
if (Index == 0) {
return;
}
}
}
};
}
) {
if (QuestionId != EFI_QUESTION_ID_INVALID) {
} else {
gCFormPkg.AssignPending (VarIdStr, (VOID *)(&mQuestionRef1->QuestionId), sizeof (EFI_QUESTION_ID), LineNo, NO_QST_REFED);
}
}
};
}
};
}
};
) : CIfrObj (EFI_IFR_QUESTION_REF3_OP, (CHAR8 **)&mQuestionRef3_2, sizeof (EFI_IFR_QUESTION_REF3_2)),
CIfrOpHeader (EFI_IFR_QUESTION_REF3_OP, &mQuestionRef3_2->Header, sizeof (EFI_IFR_QUESTION_REF3_2)) {
}
}
};
) : CIfrObj (EFI_IFR_QUESTION_REF3_OP, (CHAR8 **)&mQuestionRef3_3, sizeof (EFI_IFR_QUESTION_REF3_3)),
CIfrOpHeader (EFI_IFR_QUESTION_REF3_OP, &mQuestionRef3_3->Header, sizeof (EFI_IFR_QUESTION_REF3_3)) {
}
}
}
};
}
}
};
}
}
};
}
};
CIfrThis (
}
};
}
}
};
}
}
};
}
}
};
}
}
};
}
}
};
CIfrTrue (
}
};
}
};
CIfrOne (
}
};
CIfrOnes (
}
};
CIfrZero (
}
};
}
};
}
};
}
};
CIfrNot (
}
};
}
};
}
};
}
}
};
}
};
}
};
}
};
CIfrAdd (
}
};
}
};
}
};
CIfrAnd (
}
};
}
};
}
};
}
};
}
};
}
};
}
};
}
};
CIfrMap (
}
};
}
};
}
};
}
};
}
};
CIfrOr (
}
};
}
};
}
};
}
};
}
};
CIfrFind (
}
}
};
CIfrMid (
}
};
}
};
CIfrSpan (
}
}
}
};
#endif