class VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER(object):\r
def __init__(self):\r
self.var_check_info = []\r
- \r
+\r
def push_back(self, var_check_tab):\r
for tab in self.var_check_info:\r
if tab.equal(var_check_tab):\r
break\r
else:\r
self.var_check_info.append(var_check_tab)\r
- \r
+\r
def dump(self, dest, Phase):\r
- \r
+\r
if not os.path.isabs(dest):\r
return\r
if not os.path.exists(dest):\r
b = pack("=B", var_check_tab.pad)\r
Buffer += b\r
realLength += 1\r
- \r
+\r
DbFile = BytesIO()\r
if Phase == 'DXE' and os.path.exists(BinFilePath):\r
BinFile = open(BinFilePath, "rb")\r
Buffer = BinBuffer + Buffer\r
DbFile.write(Buffer)\r
SaveFileOnChange(BinFilePath, DbFile.getvalue(), True)\r
- \r
+\r
\r
class VAR_CHECK_PCD_VARIABLE_TAB(object):\r
pad = 0xDA\r
def UpdateSize(self):\r
self.HeaderLength = 32 + len(self.Name.split(","))\r
self.Length = 32 + len(self.Name.split(",")) + self.GetValidTabLen()\r
- \r
+\r
def GetValidTabLen(self):\r
validtablen = 0\r
for item in self.validtab:\r
- validtablen += item.Length \r
- return validtablen \r
- \r
+ validtablen += item.Length\r
+ return validtablen\r
+\r
def SetAttributes(self, attributes):\r
self.Attributes = attributes\r
- \r
+\r
def push_back(self, valid_obj):\r
if valid_obj is not None:\r
self.validtab.append(valid_obj)\r
- \r
+\r
def equal(self, varchecktab):\r
if self.Guid == varchecktab.Guid and self.Name == varchecktab.Name:\r
return True\r
else:\r
return False\r
- \r
+\r
def merge(self, varchecktab):\r
for validobj in varchecktab.validtab:\r
if validobj in self.validtab:\r
except:\r
self.StorageWidth = 0\r
self.ValidData = False\r
- \r
- def __eq__(self, validObj): \r
+\r
+ def __eq__(self, validObj):\r
return validObj and self.VarOffset == validObj.VarOffset\r
- \r
+\r
class VAR_CHECK_PCD_VALID_LIST(VAR_CHECK_PCD_VALID_OBJ):\r
def __init__(self, VarOffset, validlist, PcdDataType):\r
super(VAR_CHECK_PCD_VALID_LIST, self).__init__(VarOffset, validlist, PcdDataType)\r
valid_num_list = []\r
for item in self.rawdata:\r
valid_num_list.extend(item.split(','))\r
- \r
+\r
for valid_num in valid_num_list:\r
valid_num = valid_num.strip()\r
\r
else:\r
self.data.add(int(valid_num))\r
\r
- \r
+\r
self.Length = 5 + len(self.data) * self.StorageWidth\r
- \r
- \r
+\r
+\r
class VAR_CHECK_PCD_VALID_RANGE(VAR_CHECK_PCD_VALID_OBJ):\r
def __init__(self, VarOffset, validrange, PcdDataType):\r
super(VAR_CHECK_PCD_VALID_RANGE, self).__init__(VarOffset, validrange, PcdDataType)\r
for obj in rangelist.pop():\r
self.data.add((obj.start, obj.end))\r
self.Length = 5 + len(self.data) * 2 * self.StorageWidth\r
- \r
+\r
\r
def GetValidationObject(PcdClass, VarOffset):\r
if PcdClass.validateranges:\r