\r
VOID\r
CVfrBinaryOutput::WriteLine (\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
CVfrBinaryOutput::WriteEnd (\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
switch (Mode) {\r
case 'a' : // add\r
if (Select (Name, Id) != 0) {\r
- if ((pItem = new SConfigItem (Name, Id, Type, Offset, Width, Value)) == NULL) {\r
+ if ((pItem = new SConfigItem (Name, Id, Type, Offset, (UINT16) Width, Value)) == NULL) {\r
return 2;\r
}\r
if (mItemListHead == NULL) {\r
CVfrBufferConfig gCVfrBufferConfig;\r
\r
static struct {\r
- CHAR8 *mTypeName;\r
+ CONST CHAR8 *mTypeName;\r
UINT8 mType;\r
UINT32 mSize;\r
UINT32 mAlign;\r
SVfrDataField *pDayField = new SVfrDataField;\r
\r
strcpy (pYearField->mFieldName, "Year");\r
- GetDataType ("UINT8", &pYearField->mFieldType);\r
+ GetDataType ((CHAR8 *)"UINT16", &pYearField->mFieldType);\r
pYearField->mOffset = 0;\r
pYearField->mNext = pMonthField;\r
pYearField->mArrayNum = 0;\r
\r
strcpy (pMonthField->mFieldName, "Month");\r
- GetDataType ("UINT8", &pMonthField->mFieldType);\r
- pMonthField->mOffset = 1;\r
+ GetDataType ((CHAR8 *)"UINT8", &pMonthField->mFieldType);\r
+ pMonthField->mOffset = 2;\r
pMonthField->mNext = pDayField;\r
pMonthField->mArrayNum = 0;\r
\r
strcpy (pDayField->mFieldName, "Day");\r
- GetDataType ("UINT8", &pDayField->mFieldType);\r
- pDayField->mOffset = 2;\r
+ GetDataType ((CHAR8 *)"UINT8", &pDayField->mFieldType);\r
+ pDayField->mOffset = 3;\r
pDayField->mNext = NULL;\r
pDayField->mArrayNum = 0;\r
\r
SVfrDataField *pSecondsField = new SVfrDataField;\r
\r
strcpy (pHoursField->mFieldName, "Hours");\r
- GetDataType ("UINT8", &pHoursField->mFieldType);\r
+ GetDataType ((CHAR8 *)"UINT8", &pHoursField->mFieldType);\r
pHoursField->mOffset = 0;\r
pHoursField->mNext = pMinutesField;\r
pHoursField->mArrayNum = 0;\r
\r
strcpy (pMinutesField->mFieldName, "Minutes");\r
- GetDataType ("UINT8", &pMinutesField->mFieldType);\r
+ GetDataType ((CHAR8 *)"UINT8", &pMinutesField->mFieldType);\r
pMinutesField->mOffset = 1;\r
pMinutesField->mNext = pSecondsField;\r
pMinutesField->mArrayNum = 0;\r
\r
strcpy (pSecondsField->mFieldName, "Seconds");\r
- GetDataType ("UINT8", &pSecondsField->mFieldType);\r
+ GetDataType ((CHAR8 *)"UINT8", &pSecondsField->mFieldType);\r
pSecondsField->mOffset = 2;\r
pSecondsField->mNext = NULL;\r
pSecondsField->mArrayNum = 0;\r
\r
if (Action & VFR_PACK_SHOW) {\r
sprintf (Msg, "value of pragma pack(show) == %d", mPackAlign);\r
- gCVfrErrorHandle.PrintMsg (LineNum, "", "Warning", Msg);\r
+ gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Warning", Msg);\r
}\r
\r
if (Action & VFR_PACK_PUSH) {\r
SVfrPackStackNode *pNode = NULL;\r
\r
if (mPackStack == NULL) {\r
- gCVfrErrorHandle.PrintMsg (LineNum, "", "Error", "#pragma pack(pop...) : more pops than pushes");\r
+ gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Error", "#pragma pack(pop...) : more pops than pushes");\r
}\r
\r
for (pNode = mPackStack; pNode != NULL; pNode = pNode->mNext) {\r
if (Action & VFR_PACK_ASSIGN) {\r
PackAlign = (Number > 1) ? Number + Number % 2 : Number;\r
if ((PackAlign == 0) || (PackAlign > 16)) {\r
- gCVfrErrorHandle.PrintMsg (LineNum, "", "Error", "expected pragma parameter to be '1', '2', '4', '8', or '16'");\r
+ gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Error", "expected pragma parameter to be '1', '2', '4', '8', or '16'");\r
} else {\r
mPackAlign = PackAlign;\r
}\r
CHECK_ERROR_RETURN(GetTypeField (FName, pType, pField), VFR_RETURN_SUCCESS);\r
pType = pField->mFieldType;\r
CHECK_ERROR_RETURN(GetFieldOffset (pField, ArrayIdx, Tmp), VFR_RETURN_SUCCESS);\r
- Offset += Tmp;\r
+ Offset = (UINT16) (Offset + Tmp);\r
Type = GetFieldWidth (pField);\r
Size = GetFieldSize (pField, ArrayIdx);\r
}\r
//\r
// Assign the different ID range for the different type VarStore to support Framework Vfr\r
//\r
+ Index = 0;\r
if ((!VfrCompatibleMode) || (VarType == EFI_VFR_VARSTORE_BUFFER)) {\r
Index = 0;\r
} else if (VarType == EFI_VFR_VARSTORE_EFI) {\r
IN EFI_VARSTORE_INFO &Info\r
)\r
{\r
- CHAR8 NewReqElt[128] = {'\0',};\r
- CHAR8 *OldReqElt = NULL;\r
SVfrVarStorageNode *pNode = NULL;\r
EFI_IFR_TYPE_VALUE Value = gZeroEfiIfrTypeValue;\r
\r
for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {\r
- if (strcmp (pNode->mVarStoreName, StoreName) == NULL) {\r
+ if (strcmp (pNode->mVarStoreName, StoreName) == 0) {\r
break;\r
}\r
}\r
return VFR_RETURN_UNDEFINED;\r
}\r
\r
-STATIC\r
-EFI_VFR_RETURN_CODE\r
-AltCfgItemPrintToBuffer (\r
- IN CHAR8 *NewAltCfg, \r
- IN EFI_VARSTORE_INFO Info, \r
- IN UINT8 Type,\r
- IN EFI_IFR_TYPE_VALUE Value\r
- )\r
-{\r
- UINT32 Index;\r
- UINT8 *BufChar = NULL;\r
- UINT32 Count = 0;\r
-\r
- if (NewAltCfg != NULL) {\r
- Count = sprintf (\r
- NewAltCfg,\r
- "&OFFSET=%x&WIDTH=%x&VALUE=",\r
- Info.mInfo.mVarOffset,\r
- Info.mVarTotalSize\r
- );\r
- NewAltCfg += Count;\r
-\r
- switch (Type) {\r
- case EFI_IFR_TYPE_NUM_SIZE_8 :\r
- Count = sprintf (NewAltCfg, "%x", Value.u8);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_NUM_SIZE_16 :\r
- Count = sprintf (NewAltCfg, "%x", Value.u16);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_NUM_SIZE_32 :\r
- Count = sprintf (NewAltCfg, "%x", Value.u32);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_NUM_SIZE_64 :\r
- Count = sprintf (NewAltCfg, "%x", Value.u64);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_BOOLEAN :\r
- Count = sprintf (NewAltCfg, "%x", Value.b);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_TIME :\r
-#if 1\r
- Count = sprintf (NewAltCfg, "%x", *((UINT32 *)(&Value.time)));\r
- NewAltCfg += Count;\r
-#else\r
- BufChar = (UINT8 *)&Value.time;\r
- for (Index = 0; Index < sizeof(EFI_HII_TIME); Index++) {\r
- Count = sprintf (NewAltCfg, "%02x", (UINT8)BufChar[Index]);\r
- NewAltCfg += Count;\r
- }\r
-#endif\r
- break;\r
- case EFI_IFR_TYPE_DATE :\r
-#if 1\r
- Count = sprintf (NewAltCfg, "%x", *((UINT32 *)(&Value.date)));\r
- NewAltCfg += Count;\r
-#else\r
- BufChar = (UINT8 *)&Value.date;\r
- for (Index = 0; Index < sizeof(EFI_HII_DATE); Index++) {\r
- Count = sprintf (NewAltCfg, "%02x", (UINT8)BufChar[Index]);\r
- NewAltCfg += Count;\r
- }\r
-#endif\r
- break;\r
- case EFI_IFR_TYPE_STRING :\r
- Count = sprintf (NewAltCfg, "%x", Value.string);\r
- NewAltCfg += Count;\r
- break;\r
- case EFI_IFR_TYPE_OTHER :\r
- return VFR_RETURN_UNSUPPORTED;\r
- }\r
- }\r
-\r
- return VFR_RETURN_FATAL_ERROR;\r
-}\r
-\r
EFI_VFR_RETURN_CODE\r
CVfrDefaultStore::BufferVarStoreAltConfigAdd (\r
IN EFI_VARSTORE_ID DefaultId,\r
mQuestionId = EFI_QUESTION_ID_INVALID;\r
mBitMask = BitMask;\r
mNext = NULL;\r
+ mQtype = QUESTION_NORMAL;\r
\r
if (Name == NULL) {\r
mName = new CHAR8[strlen ("$DEFAULT") + 1];\r
pNode[0]->mQuestionId = QuestionId;\r
pNode[1]->mQuestionId = QuestionId;\r
pNode[2]->mQuestionId = QuestionId;\r
+ pNode[0]->mQtype = QUESTION_DATE;\r
+ pNode[1]->mQtype = QUESTION_DATE;\r
+ pNode[2]->mQtype = QUESTION_DATE;\r
pNode[0]->mNext = pNode[1];\r
pNode[1]->mNext = pNode[2];\r
pNode[2]->mNext = mQuestionList;\r
pNode[0]->mQuestionId = QuestionId;\r
pNode[1]->mQuestionId = QuestionId;\r
pNode[2]->mQuestionId = QuestionId;\r
+ pNode[0]->mQtype = QUESTION_DATE;\r
+ pNode[1]->mQtype = QUESTION_DATE;\r
+ pNode[2]->mQtype = QUESTION_DATE;\r
pNode[0]->mNext = pNode[1];\r
pNode[1]->mNext = pNode[2];\r
pNode[2]->mNext = mQuestionList;\r
pNode[0]->mQuestionId = QuestionId;\r
pNode[1]->mQuestionId = QuestionId;\r
pNode[2]->mQuestionId = QuestionId;\r
+ pNode[0]->mQtype = QUESTION_TIME;\r
+ pNode[1]->mQtype = QUESTION_TIME;\r
+ pNode[2]->mQtype = QUESTION_TIME;\r
pNode[0]->mNext = pNode[1];\r
pNode[1]->mNext = pNode[2];\r
pNode[2]->mNext = mQuestionList;\r
pNode[0]->mQuestionId = QuestionId;\r
pNode[1]->mQuestionId = QuestionId;\r
pNode[2]->mQuestionId = QuestionId;\r
+ pNode[0]->mQtype = QUESTION_TIME;\r
+ pNode[1]->mQtype = QUESTION_TIME;\r
+ pNode[2]->mQtype = QUESTION_TIME;\r
pNode[0]->mNext = pNode[1];\r
pNode[1]->mNext = pNode[2];\r
pNode[2]->mNext = mQuestionList;\r
IN CHAR8 *Name,\r
IN CHAR8 *VarIdStr,\r
OUT EFI_QUESTION_ID &QuestionId,\r
- OUT UINT32 &BitMask\r
+ OUT UINT32 &BitMask,\r
+ OUT EFI_QUESION_TYPE *QType\r
)\r
{\r
SVfrQuestionNode *pNode;\r
\r
QuestionId = EFI_QUESTION_ID_INVALID;\r
BitMask = 0x00000000;\r
+ if (QType != NULL) {\r
+ *QType = QUESTION_NORMAL;\r
+ }\r
\r
if ((Name == NULL) && (VarIdStr == NULL)) {\r
return ;\r
\r
QuestionId = pNode->mQuestionId;\r
BitMask = pNode->mBitMask;\r
+ if (QType != NULL) {\r
+ *QType = pNode->mQtype;\r
+ }\r
break;\r
}\r
\r
\r
CVfrVarDataTypeDB gCVfrVarDataTypeDB;\r
\r
+\r