Sync EDKII BaseTools to BaseTools project r1903.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10123 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2010-02-28 23:39:39 +00:00
parent fe35c03635
commit 52302d4dee
169 changed files with 48396 additions and 14798 deletions

View File

@@ -20,11 +20,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
VOID
CVfrBinaryOutput::WriteLine (
IN FILE *pFile,
IN UINT32 LineBytes,
IN CHAR8 *LineHeader,
IN CHAR8 *BlkBuf,
IN UINT32 BlkSize
IN FILE *pFile,
IN UINT32 LineBytes,
IN CONST CHAR8 *LineHeader,
IN CHAR8 *BlkBuf,
IN UINT32 BlkSize
)
{
UINT32 Index;
@@ -43,11 +43,11 @@ CVfrBinaryOutput::WriteLine (
VOID
CVfrBinaryOutput::WriteEnd (
IN FILE *pFile,
IN UINT32 LineBytes,
IN CHAR8 *LineHeader,
IN CHAR8 *BlkBuf,
IN UINT32 BlkSize
IN FILE *pFile,
IN UINT32 LineBytes,
IN CONST CHAR8 *LineHeader,
IN CHAR8 *BlkBuf,
IN UINT32 BlkSize
)
{
UINT32 Index;
@@ -287,7 +287,7 @@ CVfrBufferConfig::Write (
switch (Mode) {
case 'a' : // add
if (Select (Name, Id) != 0) {
if ((pItem = new SConfigItem (Name, Id, Type, Offset, Width, Value)) == NULL) {
if ((pItem = new SConfigItem (Name, Id, Type, Offset, (UINT16) Width, Value)) == NULL) {
return 2;
}
if (mItemListHead == NULL) {
@@ -455,7 +455,7 @@ CVfrBufferConfig::~CVfrBufferConfig (
CVfrBufferConfig gCVfrBufferConfig;
static struct {
CHAR8 *mTypeName;
CONST CHAR8 *mTypeName;
UINT8 mType;
UINT32 mSize;
UINT32 mAlign;
@@ -744,20 +744,20 @@ CVfrVarDataTypeDB::InternalTypesListInit (
SVfrDataField *pDayField = new SVfrDataField;
strcpy (pYearField->mFieldName, "Year");
GetDataType ("UINT8", &pYearField->mFieldType);
GetDataType ((CHAR8 *)"UINT16", &pYearField->mFieldType);
pYearField->mOffset = 0;
pYearField->mNext = pMonthField;
pYearField->mArrayNum = 0;
strcpy (pMonthField->mFieldName, "Month");
GetDataType ("UINT8", &pMonthField->mFieldType);
pMonthField->mOffset = 1;
GetDataType ((CHAR8 *)"UINT8", &pMonthField->mFieldType);
pMonthField->mOffset = 2;
pMonthField->mNext = pDayField;
pMonthField->mArrayNum = 0;
strcpy (pDayField->mFieldName, "Day");
GetDataType ("UINT8", &pDayField->mFieldType);
pDayField->mOffset = 2;
GetDataType ((CHAR8 *)"UINT8", &pDayField->mFieldType);
pDayField->mOffset = 3;
pDayField->mNext = NULL;
pDayField->mArrayNum = 0;
@@ -768,19 +768,19 @@ CVfrVarDataTypeDB::InternalTypesListInit (
SVfrDataField *pSecondsField = new SVfrDataField;
strcpy (pHoursField->mFieldName, "Hours");
GetDataType ("UINT8", &pHoursField->mFieldType);
GetDataType ((CHAR8 *)"UINT8", &pHoursField->mFieldType);
pHoursField->mOffset = 0;
pHoursField->mNext = pMinutesField;
pHoursField->mArrayNum = 0;
strcpy (pMinutesField->mFieldName, "Minutes");
GetDataType ("UINT8", &pMinutesField->mFieldType);
GetDataType ((CHAR8 *)"UINT8", &pMinutesField->mFieldType);
pMinutesField->mOffset = 1;
pMinutesField->mNext = pSecondsField;
pMinutesField->mArrayNum = 0;
strcpy (pSecondsField->mFieldName, "Seconds");
GetDataType ("UINT8", &pSecondsField->mFieldType);
GetDataType ((CHAR8 *)"UINT8", &pSecondsField->mFieldType);
pSecondsField->mOffset = 2;
pSecondsField->mNext = NULL;
pSecondsField->mArrayNum = 0;
@@ -853,7 +853,7 @@ CVfrVarDataTypeDB::Pack (
if (Action & VFR_PACK_SHOW) {
sprintf (Msg, "value of pragma pack(show) == %d", mPackAlign);
gCVfrErrorHandle.PrintMsg (LineNum, "", "Warning", Msg);
gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Warning", Msg);
}
if (Action & VFR_PACK_PUSH) {
@@ -870,7 +870,7 @@ CVfrVarDataTypeDB::Pack (
SVfrPackStackNode *pNode = NULL;
if (mPackStack == NULL) {
gCVfrErrorHandle.PrintMsg (LineNum, "", "Error", "#pragma pack(pop...) : more pops than pushes");
gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Error", "#pragma pack(pop...) : more pops than pushes");
}
for (pNode = mPackStack; pNode != NULL; pNode = pNode->mNext) {
@@ -884,7 +884,7 @@ CVfrVarDataTypeDB::Pack (
if (Action & VFR_PACK_ASSIGN) {
PackAlign = (Number > 1) ? Number + Number % 2 : Number;
if ((PackAlign == 0) || (PackAlign > 16)) {
gCVfrErrorHandle.PrintMsg (LineNum, "", "Error", "expected pragma parameter to be '1', '2', '4', '8', or '16'");
gCVfrErrorHandle.PrintMsg (LineNum, NULL, "Error", "expected pragma parameter to be '1', '2', '4', '8', or '16'");
} else {
mPackAlign = PackAlign;
}
@@ -1127,7 +1127,7 @@ CVfrVarDataTypeDB::GetDataFieldInfo (
CHECK_ERROR_RETURN(GetTypeField (FName, pType, pField), VFR_RETURN_SUCCESS);
pType = pField->mFieldType;
CHECK_ERROR_RETURN(GetFieldOffset (pField, ArrayIdx, Tmp), VFR_RETURN_SUCCESS);
Offset += Tmp;
Offset = (UINT16) (Offset + Tmp);
Type = GetFieldWidth (pField);
Size = GetFieldSize (pField, ArrayIdx);
}
@@ -1386,6 +1386,7 @@ CVfrDataStorage::GetFreeVarStoreId (
//
// Assign the different ID range for the different type VarStore to support Framework Vfr
//
Index = 0;
if ((!VfrCompatibleMode) || (VarType == EFI_VFR_VARSTORE_BUFFER)) {
Index = 0;
} else if (VarType == EFI_VFR_VARSTORE_EFI) {
@@ -1838,13 +1839,11 @@ CVfrDataStorage::BufferVarStoreRequestElementAdd (
IN EFI_VARSTORE_INFO &Info
)
{
CHAR8 NewReqElt[128] = {'\0',};
CHAR8 *OldReqElt = NULL;
SVfrVarStorageNode *pNode = NULL;
EFI_IFR_TYPE_VALUE Value = gZeroEfiIfrTypeValue;
for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {
if (strcmp (pNode->mVarStoreName, StoreName) == NULL) {
if (strcmp (pNode->mVarStoreName, StoreName) == 0) {
break;
}
}
@@ -2024,85 +2023,6 @@ CVfrDefaultStore::GetDefaultId (
return VFR_RETURN_UNDEFINED;
}
STATIC
EFI_VFR_RETURN_CODE
AltCfgItemPrintToBuffer (
IN CHAR8 *NewAltCfg,
IN EFI_VARSTORE_INFO Info,
IN UINT8 Type,
IN EFI_IFR_TYPE_VALUE Value
)
{
UINT32 Index;
UINT8 *BufChar = NULL;
UINT32 Count = 0;
if (NewAltCfg != NULL) {
Count = sprintf (
NewAltCfg,
"&OFFSET=%x&WIDTH=%x&VALUE=",
Info.mInfo.mVarOffset,
Info.mVarTotalSize
);
NewAltCfg += Count;
switch (Type) {
case EFI_IFR_TYPE_NUM_SIZE_8 :
Count = sprintf (NewAltCfg, "%x", Value.u8);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_NUM_SIZE_16 :
Count = sprintf (NewAltCfg, "%x", Value.u16);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_NUM_SIZE_32 :
Count = sprintf (NewAltCfg, "%x", Value.u32);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_NUM_SIZE_64 :
Count = sprintf (NewAltCfg, "%x", Value.u64);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_BOOLEAN :
Count = sprintf (NewAltCfg, "%x", Value.b);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_TIME :
#if 1
Count = sprintf (NewAltCfg, "%x", *((UINT32 *)(&Value.time)));
NewAltCfg += Count;
#else
BufChar = (UINT8 *)&Value.time;
for (Index = 0; Index < sizeof(EFI_HII_TIME); Index++) {
Count = sprintf (NewAltCfg, "%02x", (UINT8)BufChar[Index]);
NewAltCfg += Count;
}
#endif
break;
case EFI_IFR_TYPE_DATE :
#if 1
Count = sprintf (NewAltCfg, "%x", *((UINT32 *)(&Value.date)));
NewAltCfg += Count;
#else
BufChar = (UINT8 *)&Value.date;
for (Index = 0; Index < sizeof(EFI_HII_DATE); Index++) {
Count = sprintf (NewAltCfg, "%02x", (UINT8)BufChar[Index]);
NewAltCfg += Count;
}
#endif
break;
case EFI_IFR_TYPE_STRING :
Count = sprintf (NewAltCfg, "%x", Value.string);
NewAltCfg += Count;
break;
case EFI_IFR_TYPE_OTHER :
return VFR_RETURN_UNSUPPORTED;
}
}
return VFR_RETURN_FATAL_ERROR;
}
EFI_VFR_RETURN_CODE
CVfrDefaultStore::BufferVarStoreAltConfigAdd (
IN EFI_VARSTORE_ID DefaultId,
@@ -2340,6 +2260,7 @@ SVfrQuestionNode::SVfrQuestionNode (
mQuestionId = EFI_QUESTION_ID_INVALID;
mBitMask = BitMask;
mNext = NULL;
mQtype = QUESTION_NORMAL;
if (Name == NULL) {
mName = new CHAR8[strlen ("$DEFAULT") + 1];
@@ -2509,6 +2430,9 @@ CVfrQuestionDB::RegisterOldDateQuestion (
pNode[0]->mQuestionId = QuestionId;
pNode[1]->mQuestionId = QuestionId;
pNode[2]->mQuestionId = QuestionId;
pNode[0]->mQtype = QUESTION_DATE;
pNode[1]->mQtype = QUESTION_DATE;
pNode[2]->mQtype = QUESTION_DATE;
pNode[0]->mNext = pNode[1];
pNode[1]->mNext = pNode[2];
pNode[2]->mNext = mQuestionList;
@@ -2585,6 +2509,9 @@ CVfrQuestionDB::RegisterNewDateQuestion (
pNode[0]->mQuestionId = QuestionId;
pNode[1]->mQuestionId = QuestionId;
pNode[2]->mQuestionId = QuestionId;
pNode[0]->mQtype = QUESTION_DATE;
pNode[1]->mQtype = QUESTION_DATE;
pNode[2]->mQtype = QUESTION_DATE;
pNode[0]->mNext = pNode[1];
pNode[1]->mNext = pNode[2];
pNode[2]->mNext = mQuestionList;
@@ -2651,6 +2578,9 @@ CVfrQuestionDB::RegisterOldTimeQuestion (
pNode[0]->mQuestionId = QuestionId;
pNode[1]->mQuestionId = QuestionId;
pNode[2]->mQuestionId = QuestionId;
pNode[0]->mQtype = QUESTION_TIME;
pNode[1]->mQtype = QUESTION_TIME;
pNode[2]->mQtype = QUESTION_TIME;
pNode[0]->mNext = pNode[1];
pNode[1]->mNext = pNode[2];
pNode[2]->mNext = mQuestionList;
@@ -2727,6 +2657,9 @@ CVfrQuestionDB::RegisterNewTimeQuestion (
pNode[0]->mQuestionId = QuestionId;
pNode[1]->mQuestionId = QuestionId;
pNode[2]->mQuestionId = QuestionId;
pNode[0]->mQtype = QUESTION_TIME;
pNode[1]->mQtype = QUESTION_TIME;
pNode[2]->mQtype = QUESTION_TIME;
pNode[0]->mNext = pNode[1];
pNode[1]->mNext = pNode[2];
pNode[2]->mNext = mQuestionList;
@@ -2800,13 +2733,17 @@ CVfrQuestionDB::GetQuestionId (
IN CHAR8 *Name,
IN CHAR8 *VarIdStr,
OUT EFI_QUESTION_ID &QuestionId,
OUT UINT32 &BitMask
OUT UINT32 &BitMask,
OUT EFI_QUESION_TYPE *QType
)
{
SVfrQuestionNode *pNode;
QuestionId = EFI_QUESTION_ID_INVALID;
BitMask = 0x00000000;
if (QType != NULL) {
*QType = QUESTION_NORMAL;
}
if ((Name == NULL) && (VarIdStr == NULL)) {
return ;
@@ -2827,6 +2764,9 @@ CVfrQuestionDB::GetQuestionId (
QuestionId = pNode->mQuestionId;
BitMask = pNode->mBitMask;
if (QType != NULL) {
*QType = pNode->mQtype;
}
break;
}
@@ -2877,3 +2817,4 @@ BOOLEAN VfrCompatibleMode = FALSE;
CVfrVarDataTypeDB gCVfrVarDataTypeDB;