from struct import pack\r
from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER\r
from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB\r
-from ValidCheckingInfoObject import VAR_VALID_OBJECT_FACTORY\r
+from ValidCheckingInfoObject import GetValidationObject\r
from Common.VariableAttributes import VariableAttributes\r
import copy\r
from struct import unpack\r
)\r
return Buffer\r
\r
-def toHex(s):\r
- lst = []\r
- for ch in s:\r
- hv = hex(ord(ch)).replace('0x', ' ')\r
- if len(hv) == 1:\r
- hv = '0'+hv\r
- lst.append(hv)\r
- if lst:\r
- return reduce(lambda x,y:x+y, lst)\r
- else:\r
- return 'empty'\r
## DbItemList\r
#\r
# The class holds the Pcd database items. ItemSize if not zero should match the item datum type in the C structure. \r
#\r
class DbItemList:\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = []\r
self.ItemSize = ItemSize\r
- self.DataList = DataList\r
- self.RawDataList = RawDataList\r
+ self.DataList = DataList if DataList else []\r
+ self.RawDataList = RawDataList if RawDataList else []\r
self.ListSize = 0\r
\r
def GetInterOffset(self, Index):\r
for ItemIndex in xrange(Index):\r
Offset += len(self.RawDataList[ItemIndex])\r
else:\r
- for Datas in self.RawDataList:\r
- Offset = self.ItemSize * Index\r
+ Offset = self.ItemSize * Index\r
\r
return Offset\r
\r
#\r
class DbExMapTblItemList (DbItemList):\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = []\r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
def PackData(self):\r
Buffer = ''\r
PackStr = "=LHH"\r
#\r
class DbComItemList (DbItemList):\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = []\r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
def GetInterOffset(self, Index):\r
Offset = 0\r
if self.ItemSize == 0:\r
#\r
class DbVariableTableItemList (DbComItemList):\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = []\r
DbComItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
def PackData(self):\r
PackStr = "=LLHHLHH"\r
Buffer = ''\r
\r
class DbStringHeadTableItemList(DbItemList):\r
def __init__(self,ItemSize,DataList=None,RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = [] \r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
\r
def GetInterOffset(self, Index):\r
#\r
class DbSkuHeadTableItemList (DbItemList):\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = [] \r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
def PackData(self):\r
PackStr = "=LL"\r
Buffer = ''\r
#\r
class DbSizeTableItemList (DbItemList):\r
def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
- if DataList is None:\r
- DataList = []\r
- if RawDataList is None:\r
- RawDataList = [] \r
DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
def GetListSize(self):\r
length = 0\r
for Data in self.RawDataList:\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
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
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
Pcd.InitString = 'UNINIT'\r
\r
if Pcd.DatumType == TAB_VOID:\r
- if Pcd.Type not in ["DynamicVpd", "DynamicExVpd"]:\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
if Platform.Platform.VarCheckFlag:\r
var_check_obj = VAR_CHECK_PCD_VARIABLE_TAB(VariableGuidStructure, StringToArray(Sku.VariableName))\r
try:\r
- var_check_obj.push_back(VAR_VALID_OBJECT_FACTORY.Get_valid_object(Pcd, Sku.VariableOffset))\r
+ var_check_obj.push_back(GetValidationObject(Pcd, Sku.VariableOffset))\r
VarAttr, _ = VariableAttributes.GetVarAttributes(Sku.VariableAttribute)\r
var_check_obj.SetAttributes(VarAttr)\r
var_check_obj.UpdateSize()\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