\r
The definition of CFormPkg's member function\r
\r
-Copyright (c) 2004 - 2008, Intel Corporation \r
+Copyright (c) 2004 - 2010, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
IN VOID *Addr, \r
IN UINT32 Len, \r
IN UINT32 LineNo,\r
- IN CHAR8 *Msg\r
+ IN CONST CHAR8 *Msg\r
)\r
{\r
mKey = NULL;\r
\r
VOID\r
CFormPkg::_WRITE_PKG_LINE (\r
- IN FILE *pFile,\r
- IN UINT32 LineBytes,\r
- IN CHAR8 *LineHeader,\r
- IN CHAR8 *BlkBuf,\r
- IN UINT32 BlkSize\r
+ IN FILE *pFile,\r
+ IN UINT32 LineBytes,\r
+ IN CONST CHAR8 *LineHeader,\r
+ IN CHAR8 *BlkBuf,\r
+ IN UINT32 BlkSize\r
)\r
{\r
UINT32 Index;\r
\r
VOID\r
CFormPkg::_WRITE_PKG_END (\r
- IN FILE *pFile,\r
- IN UINT32 LineBytes,\r
- IN CHAR8 *LineHeader,\r
- IN CHAR8 *BlkBuf,\r
- IN UINT32 BlkSize\r
+ IN FILE *pFile,\r
+ IN UINT32 LineBytes,\r
+ IN CONST CHAR8 *LineHeader,\r
+ IN CHAR8 *BlkBuf,\r
+ IN UINT32 BlkSize\r
)\r
{\r
UINT32 Index;\r
IN VOID *ValAddr, \r
IN UINT32 ValLen,\r
IN UINT32 LineNo,\r
- IN CHAR8 *Msg\r
+ IN CONST CHAR8 *Msg\r
)\r
{\r
SPendingAssign *pNew;\r
)\r
{\r
SIfrRecord *pNode;\r
+ SIfrRecord *Prev;\r
\r
if ((pNode = GetRecordInfoFromIdx (RecordIdx)) == NULL) {\r
return;\r
}\r
\r
+ if (LineNo == 0) {\r
+ //\r
+ // Line number is not specified explicitly, try to use line number of previous opcode\r
+ //\r
+ Prev = GetRecordInfoFromIdx (RecordIdx - 1);\r
+ if (Prev != NULL) {\r
+ LineNo = Prev->mLineNo;\r
+ }\r
+ }\r
+\r
pNode->mLineNo = LineNo;\r
pNode->mOffset = Offset;\r
pNode->mBinBufLen = BinBufLen;\r
{ sizeof (EFI_IFR_INCONSISTENT_IF), 1 }, // EFI_IFR_INCONSISTENT_IF_OP\r
{ sizeof (EFI_IFR_EQ_ID_VAL), 0 }, // EFI_IFR_EQ_ID_VAL_OP\r
{ sizeof (EFI_IFR_EQ_ID_ID), 0 }, // EFI_IFR_EQ_ID_ID_OP\r
- { sizeof (EFI_IFR_EQ_ID_LIST), 0 }, // EFI_IFR_EQ_ID_LIST_OP - 0x14\r
+ { sizeof (EFI_IFR_EQ_ID_VAL_LIST), 0 }, // EFI_IFR_EQ_ID_LIST_OP - 0x14\r
{ sizeof (EFI_IFR_AND), 0 }, // EFI_IFR_AND_OP\r
{ sizeof (EFI_IFR_OR), 0 }, // EFI_IFR_OR_OP\r
{ sizeof (EFI_IFR_NOT), 0 }, // EFI_IFR_NOT_OP\r
{ 0, 0 }, // 0x1F\r
{ sizeof (EFI_IFR_TO_LOWER), 0 }, // EFI_IFR_TO_LOWER_OP - 0x20\r
{ sizeof (EFI_IFR_TO_UPPER), 0 }, // EFI_IFR_TO_UPPER_OP - 0x21\r
- { 0, 0 }, // 0x22\r
+ { sizeof (EFI_IFR_MAP), 1 }, // EFI_IFR_MAP - 0x22\r
{ sizeof (EFI_IFR_ORDERED_LIST), 1 }, // EFI_IFR_ORDERED_LIST_OP - 0x23\r
{ sizeof (EFI_IFR_VARSTORE), 0 }, // EFI_IFR_VARSTORE_OP\r
{ sizeof (EFI_IFR_VARSTORE_NAME_VALUE), 0 }, // EFI_IFR_VARSTORE_NAME_VALUE_OP\r
{ sizeof (EFI_IFR_VARSTORE_DEVICE), 1 }, // EFI_IFR_VARSTORE_DEVICE_OP\r
{ sizeof (EFI_IFR_VERSION), 0 }, // EFI_IFR_VERSION_OP - 0x28\r
{ sizeof (EFI_IFR_END), 0 }, // EFI_IFR_END_OP\r
- { sizeof (EFI_IFR_MATCH), 1 }, // EFI_IFR_MATCH_OP - 0x2A\r
- { 0, 0 }, { 0, 0} , { 0, 0} , { 0, 0} , // 0x2B ~ 0x2E\r
+ { sizeof (EFI_IFR_MATCH), 0 }, // EFI_IFR_MATCH_OP - 0x2A\r
+ { sizeof (EFI_IFR_GET), 0 }, // EFI_IFR_GET - 0x2B\r
+ { sizeof (EFI_IFR_SET), 0 }, // EFI_IFR_SET - 0x2C\r
+ { sizeof (EFI_IFR_READ), 0 }, // EFI_IFR_READ - 0x2D\r
+ { sizeof (EFI_IFR_WRITE), 0 }, // EFI_IFR_WRITE - 0x2E\r
{ sizeof (EFI_IFR_EQUAL), 0 }, // EFI_IFR_EQUAL_OP - 0x2F\r
{ sizeof (EFI_IFR_NOT_EQUAL), 0 }, // EFI_IFR_NOT_EQUAL_OP\r
{ sizeof (EFI_IFR_GREATER_THAN), 0 }, // EFI_IFR_GREATER_THAN_OP\r
{ sizeof (EFI_IFR_VALUE), 1 }, // EFI_IFR_VALUE_OP\r
{ sizeof (EFI_IFR_DEFAULT), 0 }, // EFI_IFR_DEFAULT_OP\r
{ sizeof (EFI_IFR_DEFAULTSTORE), 0 }, // EFI_IFR_DEFAULTSTORE_OP - 0x5C\r
- { 0, 0}, // 0x5D\r
+ { sizeof (EFI_IFR_FORM_MAP), 1}, // EFI_IFR_FORM_MAP_OP - 0x5D\r
{ sizeof (EFI_IFR_CATENATE), 0 }, // EFI_IFR_CATENATE_OP\r
{ sizeof (EFI_IFR_GUID), 0 }, // EFI_IFR_GUID_OP\r
+ { sizeof (EFI_IFR_SECURITY), 0 }, // EFI_IFR_SECURITY_OP - 0x60\r
};\r
\r
#ifdef CIFROBJ_DEUBG\r
"EFI_IFR_ACTION", "EFI_IFR_RESET_BUTTON", "EFI_IFR_FORM_SET", "EFI_IFR_REF", "EFI_IFR_NO_SUBMIT_IF", "EFI_IFR_INCONSISTENT_IF",\r
"EFI_IFR_EQ_ID_VAL", "EFI_IFR_EQ_ID_ID", "EFI_IFR_EQ_ID_LIST", "EFI_IFR_AND", "EFI_IFR_OR", "EFI_IFR_NOT",\r
"EFI_IFR_RULE", "EFI_IFR_GRAY_OUT_IF", "EFI_IFR_DATE", "EFI_IFR_TIME", "EFI_IFR_STRING", "EFI_IFR_REFRESH",\r
- "EFI_IFR_DISABLE_IF", "EFI_IFR_INVALID", "EFI_IFR_TO_LOWER", "EFI_IFR_TO_UPPER", "EFI_IFR_INVALID", "EFI_IFR_ORDERED_LIST",\r
+ "EFI_IFR_DISABLE_IF", "EFI_IFR_INVALID", "EFI_IFR_TO_LOWER", "EFI_IFR_TO_UPPER", "EFI_IFR_MAP", "EFI_IFR_ORDERED_LIST",\r
"EFI_IFR_VARSTORE", "EFI_IFR_VARSTORE_NAME_VALUE", "EFI_IFR_VARSTORE_EFI", "EFI_IFR_VARSTORE_DEVICE", "EFI_IFR_VERSION", "EFI_IFR_END",\r
- "EFI_IFR_MATCH", "EFI_IFR_INVALID", "EFI_IFR_INVALID", "EFI_IFR_INVALID", "EFI_IFR_INVALID", "EFI_IFR_EQUAL",\r
+ "EFI_IFR_MATCH", "EFI_IFR_GET", "EFI_IFR_SET", "EFI_IFR_READ", "EFI_IFR_WRITE", "EFI_IFR_EQUAL",\r
"EFI_IFR_NOT_EQUAL", "EFI_IFR_GREATER_THAN", "EFI_IFR_GREATER_EQUAL", "EFI_IFR_LESS_THAN", "EFI_IFR_LESS_EQUAL", "EFI_IFR_BITWISE_AND",\r
"EFI_IFR_BITWISE_OR", "EFI_IFR_BITWISE_NOT", "EFI_IFR_SHIFT_LEFT", "EFI_IFR_SHIFT_RIGHT", "EFI_IFR_ADD", "EFI_IFR_SUBTRACT",\r
"EFI_IFR_MULTIPLY", "EFI_IFR_DIVIDE", "EFI_IFR_MODULO", "EFI_IFR_RULE_REF", "EFI_IFR_QUESTION_REF1", "EFI_IFR_QUESTION_REF2",\r
"EFI_IFR_TO_UINT", "EFI_IFR_TO_STRING", "EFI_IFR_TO_BOOLEAN", "EFI_IFR_MID", "EFI_IFR_FIND", "EFI_IFR_TOKEN",\r
"EFI_IFR_STRING_REF1","EFI_IFR_STRING_REF2", "EFI_IFR_CONDITIONAL", "EFI_IFR_QUESTION_REF3", "EFI_IFR_ZERO", "EFI_IFR_ONE",\r
"EFI_IFR_ONES", "EFI_IFR_UNDEFINED", "EFI_IFR_LENGTH", "EFI_IFR_DUP", "EFI_IFR_THIS", "EFI_IFR_SPAN",\r
- "EFI_IFR_VALUE", "EFI_IFR_DEFAULT", "EFI_IFR_DEFAULTSTORE", "EFI_IFR_INVALID", "EFI_IFR_CATENATE", "EFI_IFR_GUID",\r
+ "EFI_IFR_VALUE", "EFI_IFR_DEFAULT", "EFI_IFR_DEFAULTSTORE", "EFI_IFR_FORM_MAP", "EFI_IFR_CATENATE", "EFI_IFR_GUID",\r
+ "EFI_IFR_SECURITY",\r
};\r
\r
VOID\r
\r
#endif\r
\r
-bool gCreateOp = TRUE;\r
+BOOLEAN gCreateOp = TRUE;\r
\r
CIfrObj::CIfrObj (\r
IN UINT8 OpCode,\r
mHeader = OpHdr.mHeader;\r
}\r
\r
-UINT32 CIfrForm::FormIdBitMap[EFI_FREE_FORM_ID_BITMAP_SIZE] = {0, };\r
+UINT32 CIfrFormId::FormIdBitMap[EFI_FREE_FORM_ID_BITMAP_SIZE] = {0, };\r