NvStorageHeaderSize = 28\r
VariableHeaderSize = 32\r
\r
-def PackGUID(Guid):\r
- GuidBuffer = pack('=LHHBBBBBBBB',\r
- int(Guid[0], 16),\r
- int(Guid[1], 16),\r
- int(Guid[2], 16),\r
- int(Guid[3][-4:-2], 16),\r
- int(Guid[3][-2:], 16),\r
- int(Guid[4][-12:-10], 16),\r
- int(Guid[4][-10:-8], 16),\r
- int(Guid[4][-8:-6], 16),\r
- int(Guid[4][-6:-4], 16),\r
- int(Guid[4][-4:-2], 16),\r
- int(Guid[4][-2:], 16)\r
- )\r
- return GuidBuffer\r
-\r
class VariableMgr(object):\r
def __init__(self, DefaultStoreMap,SkuIdMap):\r
self.VarInfo = []\r
data_type = item.data_type\r
value_list = item.default_value.strip("{").strip("}").split(",")\r
if data_type in DataType.TAB_PCD_NUMERIC_TYPES:\r
- if data_type == ["BOOLEAN", DataType.TAB_UINT8]:\r
- data_flag = "=B"\r
- elif data_type == DataType.TAB_UINT16:\r
- data_flag = "=H"\r
- elif data_type == DataType.TAB_UINT32:\r
- data_flag = "=L"\r
- elif data_type == DataType.TAB_UINT64:\r
- data_flag = "=Q"\r
+ data_flag = DataType.PACK_CODE_BY_SIZE[MAX_SIZE_TYPE[data_type]]\r
data = value_list[0]\r
value_list = []\r
for data_byte in pack(data_flag,int(data,16) if data.upper().startswith('0X') else int(data)):\r
- value_list += [hex(unpack("B",data_byte)[0])]\r
+ value_list.append(hex(unpack("B",data_byte)[0]))\r
newvalue[int(item.var_offset,16) if item.var_offset.upper().startswith("0X") else int(item.var_offset)] = value_list\r
try:\r
newvaluestr = "{" + ",".join(VariableMgr.assemble_variable(newvalue)) +"}"\r
except:\r
- EdkLogger.error("build", AUTOGEN_ERROR, "Variable offset conflict in PCDs: %s \n" % (" and ".join([item.pcdname for item in sku_var_info_offset_list])))\r
+ EdkLogger.error("build", AUTOGEN_ERROR, "Variable offset conflict in PCDs: %s \n" % (" and ".join(item.pcdname for item in sku_var_info_offset_list)))\r
n = sku_var_info_offset_list[0]\r
indexedvarinfo[key] = [var_info(n.pcdindex,n.pcdname,n.defaultstoragename,n.skuname,n.var_name, n.var_guid, "0x00",n.var_attribute,newvaluestr , newvaluestr , DataType.TAB_VOID)]\r
self.VarInfo = [item[0] for item in indexedvarinfo.values()]\r
\r
@staticmethod\r
def assemble_variable(valuedict):\r
- ordered_offset = sorted(valuedict.keys())\r
- ordered_value = [valuedict[k] for k in ordered_offset]\r
+ ordered_valuedict_keys = sorted(valuedict.keys())\r
var_value = []\r
- num = 0\r
- for offset in ordered_offset:\r
- if offset < len(var_value):\r
+ for current_valuedict_key in ordered_valuedict_keys:\r
+ if current_valuedict_key < len(var_value):\r
raise\r
- for _ in xrange(offset - len(var_value)):\r
+ for _ in xrange(current_valuedict_key - len(var_value)):\r
var_value.append('0x00')\r
- var_value += ordered_value[num]\r
- num +=1\r
+ var_value += valuedict[current_valuedict_key]\r
return var_value\r
\r
def process_variable_data(self):\r
default_sku_default = indexedvarinfo[index].get((DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT))\r
\r
if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:\r
- var_max_len = max([len(var_item.default_value.split(",")) for var_item in sku_var_info.values()])\r
+ var_max_len = max(len(var_item.default_value.split(",")) for var_item in sku_var_info.values())\r
if len(default_sku_default.default_value.split(",")) < var_max_len:\r
- tail = ",".join([ "0x00" for i in range(var_max_len-len(default_sku_default.default_value.split(",")))])\r
+ tail = ",".join("0x00" for i in range(var_max_len-len(default_sku_default.default_value.split(","))))\r
\r
default_data_buffer = VariableMgr.PACK_VARIABLES_DATA(default_sku_default.default_value,default_sku_default.data_type,tail)\r
\r
\r
if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:\r
if len(other_sku_other.default_value.split(",")) < var_max_len:\r
- tail = ",".join([ "0x00" for i in range(var_max_len-len(other_sku_other.default_value.split(",")))])\r
+ tail = ",".join("0x00" for i in range(var_max_len-len(other_sku_other.default_value.split(","))))\r
\r
others_data_buffer = VariableMgr.PACK_VARIABLES_DATA(other_sku_other.default_value,other_sku_other.data_type,tail)\r
\r