from Common.VariableAttributes import VariableAttributes\r
import copy\r
from struct import unpack\r
-from Common.DataType import TAB_DEFAULT\r
+from Common.DataType import *\r
\r
DATABASE_VERSION = 7\r
\r
AutoGenC.Append(AdditionalAutoGenC.String)\r
\r
if Info.IsBinaryModule:\r
- DbFileName = os.path.join(Info.PlatformInfo.BuildDir, "FV", Phase + "PcdDataBase.raw")\r
+ DbFileName = os.path.join(Info.PlatformInfo.BuildDir, TAB_FV_DIRECTORY, Phase + "PcdDataBase.raw")\r
else:\r
DbFileName = os.path.join(Info.OutputDir, Phase + "PcdDataBase.raw")\r
DbFile = StringIO()\r
Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)\r
def CreatePcdDataBase(PcdDBData):\r
delta = {}\r
- basedata = {}\r
for skuname,skuid in PcdDBData:\r
if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[(TAB_DEFAULT,"0")][1]):\r
EdkLogger.ERROR("The size of each sku in one pcd are not same")\r
if skuname == TAB_DEFAULT:\r
continue\r
delta[(skuname,skuid)] = [(index,data,hex(data)) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[(TAB_DEFAULT,"0")][1][index]]\r
- basedata[(skuname,skuid)] = [(index,PcdDBData[(TAB_DEFAULT,"0")][1][index],hex(PcdDBData[(TAB_DEFAULT,"0")][1][index])) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[(TAB_DEFAULT,"0")][1][index]]\r
databasebuff = PcdDBData[(TAB_DEFAULT,"0")][0]\r
\r
for skuname,skuid in delta:\r
new_pcd = copy.deepcopy(pcd)\r
new_pcd.SkuInfoList = {skuname:pcd.SkuInfoList[skuname]}\r
new_pcd.isinit = 'INIT'\r
- if new_pcd.DatumType in ['UINT8','UINT16','UINT32','UINT64']:\r
+ if new_pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
for skuobj in pcd.SkuInfoList.values():\r
if skuobj.DefaultValue:\r
defaultvalue = int(skuobj.DefaultValue,16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue,10)\r
PcdDriverAutoGenData[(skuname,skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)\r
VarCheckTableData[(skuname,skuid)] = VarCheckTab\r
if Platform.Platform.VarCheckFlag:\r
- dest = os.path.join(Platform.BuildDir, 'FV')\r
+ dest = os.path.join(Platform.BuildDir, TAB_FV_DIRECTORY)\r
VarCheckTable = CreateVarCheckBin(VarCheckTableData)\r
VarCheckTable.dump(dest, Phase)\r
AdditionalAutoGenH, AdditionalAutoGenC = CreateAutoGen(PcdDriverAutoGenData)\r
\r
Dict['PCD_INFO_FLAG'] = Platform.Platform.PcdInfoFlag\r
\r
- for DatumType in ['UINT64','UINT32','UINT16','UINT8','BOOLEAN', "VOID*"]:\r
+ for DatumType in TAB_PCD_NUMERIC_TYPES_VOID:\r
Dict['VARDEF_CNAME_' + DatumType] = []\r
Dict['VARDEF_GUID_' + DatumType] = []\r
Dict['VARDEF_SKUID_' + DatumType] = []\r
ReorderedDynPcdList = GetOrderedDynamicPcdList(DynamicPcdList, Platform.PcdTokenNumber)\r
for item in ReorderedDynPcdList:\r
if item.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
- item.DatumType = "VOID*"\r
+ item.DatumType = TAB_VOID\r
for Pcd in ReorderedDynPcdList:\r
VoidStarTypeCurrSize = []\r
i += 1\r
#\r
TokenSpaceGuidStructure = Pcd.TokenSpaceGuidValue\r
TokenSpaceGuid = GuidStructureStringToGuidValueName(TokenSpaceGuidStructure)\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if TokenSpaceGuid not in GuidList:\r
GuidList += [TokenSpaceGuid]\r
Dict['GUID_STRUCTURE'].append(TokenSpaceGuidStructure)\r
VariableDbValueList = []\r
Pcd.InitString = 'UNINIT'\r
\r
- if Pcd.DatumType == 'VOID*':\r
- if Pcd.Type not in ["DynamicVpd", "DynamicExVpd"]:\r
+ if Pcd.DatumType == TAB_VOID:\r
+ if Pcd.Type not in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
Pcd.TokenTypeList = ['PCD_TYPE_STRING']\r
else:\r
Pcd.TokenTypeList = []\r
#\r
Dict['VARDEF_DB_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue)\r
\r
- if Pcd.DatumType == "UINT64":\r
+ if Pcd.DatumType == TAB_UINT64:\r
Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "ULL")\r
- elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+ elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "U")\r
elif Pcd.DatumType == "BOOLEAN":\r
if eval(Sku.HiiDefaultValue) in [1,0]:\r
VpdHeadOffsetList.append(str(Sku.VpdOffset) + 'U')\r
VpdDbOffsetList.append(Sku.VpdOffset)\r
# Also add the VOID* string of VPD PCD to SizeTable \r
- if Pcd.DatumType == 'VOID*':\r
+ if Pcd.DatumType == TAB_VOID:\r
NumberOfSizeItems += 1\r
# For VPD type of PCD, its current size is equal to its MAX size.\r
VoidStarTypeCurrSize = [str(Pcd.MaxDatumSize) + 'U'] \r
continue\r
\r
- if Pcd.DatumType == 'VOID*':\r
+ if Pcd.DatumType == TAB_VOID:\r
Pcd.TokenTypeList += ['PCD_TYPE_STRING']\r
Pcd.InitString = 'INIT'\r
if Sku.HiiDefaultValue != '' and Sku.DefaultValue == '':\r
# For UNIT64 type PCD's value, ULL should be append to avoid\r
# warning under linux building environment.\r
#\r
- if Pcd.DatumType == "UINT64":\r
+ if Pcd.DatumType == TAB_UINT64:\r
ValueList.append(Sku.DefaultValue + "ULL")\r
- elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+ elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
ValueList.append(Sku.DefaultValue + "U")\r
elif Pcd.DatumType == "BOOLEAN":\r
if Sku.DefaultValue in ["1", "0"]:\r
DbValueList.append(Sku.DefaultValue)\r
\r
Pcd.TokenTypeList = list(set(Pcd.TokenTypeList))\r
- if Pcd.DatumType == 'VOID*': \r
+ if Pcd.DatumType == TAB_VOID:\r
Dict['SIZE_TABLE_CNAME'].append(CName)\r
Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)\r
Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')\r
Dict['VARDEF_HEADER'][GeneratedTokenNumber] = ''\r
\r
\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
\r
if Phase == 'DXE':\r
GeneratedTokenNumber += NumberOfPeiLocalTokens\r