return reduce(lambda x, y: (x << 8) | y, Bytes[::-1])\r
\r
\r
+def Str2Bytes(Value, Blen):\r
+ Result = bytearray(Value[1:-1], 'utf-8') # Excluding quotes\r
+ if len(Result) < Blen:\r
+ Result.extend(b'\x00' * (Blen - len(Result)))\r
+ return Result\r
+\r
+\r
class CFspBsf2Dsc:\r
\r
def __init__(self, bsf_file):\r
cfg_item['find'] = prefix\r
cfg_item['cname'] = 'Signature'\r
cfg_item['length'] = len(finds[0][1])\r
- cfg_item['value'] = '0x%X' % Bytes2Val(finds[0][1].encode('UTF-8'))\r
+ str2byte = Str2Bytes("'" + finds[0][1] + "'", len(finds[0][1]))\r
+ cfg_item['value'] = '0x%X' % Bytes2Val(str2byte)\r
cfg_list.append(dict(cfg_item))\r
cfg_item = dict(cfg_temp)\r
find_list.pop(0)\r
raise Exception('DSC variable creation error !')\r
else:\r
raise Exception('Unsupported file "%s" !' % file_name)\r
- gen_cfg_data.UpdateDefaultValue()\r
self.gen_cfg_data = gen_cfg_data\r
\r
def print_dsc_line(self):\r
for Page in PageList:\r
Page = Page.strip()\r
Match = re.match("(\w+):\"(.+)\"", Page)\r
- self._CfgPageDict[Match.group(1)] = Match.group(2)\r
+ if Match != None:\r
+ self._CfgPageDict[Match.group(1)] = Match.group(2)\r
\r
Match = re.match("(?:^|.+\s+)BLOCK:{NAME:\"(.+)\"\s*,\s*VER:\"(.+)\"\s*}", Remaining)\r
if Match:\r