From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.136; helo=mga12.intel.com; envelope-from=michael.d.kinney@intel.com; receiver=edk2-devel@lists.01.org Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 43A9121109FEC for ; Fri, 8 Jun 2018 23:15:14 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jun 2018 23:15:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,493,1520924400"; d="scan'208";a="55428572" Received: from mdkinney-mobl2.amr.corp.intel.com ([10.254.116.225]) by fmsmga002.fm.intel.com with ESMTP; 08 Jun 2018 23:15:13 -0700 From: "Kinney, Michael D" To: edk2-devel@lists.01.org Cc: Yanyan Sun , Yonghong Zhu , Liming Gao , Michael D Kinney Date: Fri, 8 Jun 2018 23:15:05 -0700 Message-Id: <20180609061505.14380-6-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.14.2.windows.3 In-Reply-To: <20180609061505.14380-1-michael.d.kinney@intel.com> References: <20180609061505.14380-1-michael.d.kinney@intel.com> Subject: [Patch 5/5] BaseTools/BinToPcd: Follow PEP-8 indent of 4 spaces X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jun 2018 06:15:14 -0000 https://www.python.org/dev/peps/pep-0008/ Cc: Yanyan Sun Cc: Yonghong Zhu Cc: Liming Gao Signed-off-by: Michael D Kinney Contributed-under: TianoCore Contribution Agreement 1.1 --- BaseTools/Scripts/BinToPcd.py | 356 +++++++++++++++++++++--------------------- 1 file changed, 178 insertions(+), 178 deletions(-) diff --git a/BaseTools/Scripts/BinToPcd.py b/BaseTools/Scripts/BinToPcd.py index 52c231615f..b907d3e5e0 100644 --- a/BaseTools/Scripts/BinToPcd.py +++ b/BaseTools/Scripts/BinToPcd.py @@ -28,198 +28,198 @@ __copyright__ = 'Copyright (c) 2016 - 2018, Intel Corporation. All rights rese __description__ = 'Convert one or more binary files to a VOID* PCD value or DSC file VOID* PCD statement.\n' if __name__ == '__main__': - def ValidateUnsignedInteger (Argument): - try: - Value = int (Argument, 0) - except: - Message = '{Argument} is not a valid integer value.'.format (Argument = Argument) - raise argparse.ArgumentTypeError(Message) - if Value < 0: - Message = '{Argument} is a negative value.'.format (Argument = Argument) - raise argparse.ArgumentTypeError(Message) - return Value + def ValidateUnsignedInteger (Argument): + try: + Value = int (Argument, 0) + except: + Message = '{Argument} is not a valid integer value.'.format (Argument = Argument) + raise argparse.ArgumentTypeError (Message) + if Value < 0: + Message = '{Argument} is a negative value.'.format (Argument = Argument) + raise argparse.ArgumentTypeError (Message) + return Value - def ValidatePcdName (Argument): - if re.split('[a-zA-Z\_][a-zA-Z0-9\_]*\.[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']: - Message = '{Argument} is not in the form .'.format (Argument = Argument) - raise argparse.ArgumentTypeError(Message) - return Argument + def ValidatePcdName (Argument): + if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*\.[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']: + Message = '{Argument} is not in the form .'.format (Argument = Argument) + raise argparse.ArgumentTypeError (Message) + return Argument - def ValidateGuidName (Argument): - if re.split('[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']: - Message = '{Argument} is not a valid GUID C name'.format (Argument = Argument) - raise argparse.ArgumentTypeError(Message) - return Argument + def ValidateGuidName (Argument): + if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']: + Message = '{Argument} is not a valid GUID C name'.format (Argument = Argument) + raise argparse.ArgumentTypeError (Message) + return Argument + + def ByteArray (Buffer, Xdr = False): + if Xdr: + # + # If Xdr flag is set then encode data using the Variable-Length Opaque + # Data format of RFC 4506 External Data Representation Standard (XDR). + # + XdrEncoder = xdrlib.Packer () + for Item in Buffer: + XdrEncoder.pack_bytes (Item) + Buffer = bytearray (XdrEncoder.get_buffer ()) + else: + # + # If Xdr flag is not set, then concatenate all the data + # + Buffer = b''.join (Buffer) + # + # Return a PCD value of the form '{0x01, 0x02, ...}' along with the PCD length in bytes + # + return '{' + (', '.join (['0x{Byte:02X}'.format (Byte = Item) for Item in Buffer])) + '}', len (Buffer) - def ByteArray (Buffer, Xdr = False): - if Xdr: - # - # If Xdr flag is set then encode data using the Variable-Length Opaque - # Data format of RFC 4506 External Data Representation Standard (XDR). - # - XdrEncoder = xdrlib.Packer() - for Item in Buffer: - XdrEncoder.pack_bytes(Item) - Buffer = bytearray(XdrEncoder.get_buffer()) - else: - # - # If Xdr flag is not set, then concatenate all the data - # - Buffer = b''.join(Buffer) # - # Return a PCD value of the form '{0x01, 0x02, ...}' along with the PCD length in bytes + # Create command line argument parser object # - return '{' + (', '.join(['0x{Byte:02X}'.format(Byte = Item) for Item in Buffer])) + '}', len (Buffer) - - # - # Create command line argument parser object - # - parser = argparse.ArgumentParser(prog = __prog__, - description = __description__ + __copyright__, - conflict_handler = 'resolve') - parser.add_argument("-i", "--input", dest = 'InputFile', type = argparse.FileType('rb'), action='append', required = True, - help = "Input binary filename. Multiple input files are combined into a single PCD.") - parser.add_argument("-o", "--output", dest = 'OutputFile', type = argparse.FileType('wb'), - help = "Output filename for PCD value or PCD statement") - parser.add_argument("-p", "--pcd", dest = 'PcdName', type = ValidatePcdName, - help = "Name of the PCD in the form .") - parser.add_argument("-t", "--type", dest = 'PcdType', default = None, choices = ['VPD','HII'], - help = "PCD statement type (HII or VPD). Default is standard.") - parser.add_argument("-m", "--max-size", dest = 'MaxSize', type = ValidateUnsignedInteger, - help = "Maximum size of the PCD. Ignored with --type HII.") - parser.add_argument("-f", "--offset", dest = 'Offset', type = ValidateUnsignedInteger, - help = "VPD offset if --type is VPD. UEFI Variable offset if --type is HII. Must be 8-byte aligned.") - parser.add_argument("-n", "--variable-name", dest = 'VariableName', - help = "UEFI variable name. Only used with --type HII.") - parser.add_argument("-g", "--variable-guid", type = ValidateGuidName, dest = 'VariableGuid', - help = "UEFI variable GUID C name. Only used with --type HII.") - parser.add_argument("-x", "--xdr", dest = 'Xdr', action = "store_true", - help = "Encode PCD using the Variable-Length Opaque Data format of RFC 4506 External Data Representation Standard (XDR)") - parser.add_argument("-v", "--verbose", dest = 'Verbose', action = "store_true", - help = "Increase output messages") - parser.add_argument("-q", "--quiet", dest = 'Quiet', action = "store_true", - help = "Reduce output messages") - parser.add_argument("--debug", dest = 'Debug', type = int, metavar = '[0-9]', choices = range(0,10), default = 0, - help = "Set debug level") - - # - # Parse command line arguments - # - args = parser.parse_args() - - # - # Read all binary input files - # - Buffer = [] - for File in args.InputFile: - try: - Buffer.append(File.read()) - File.close() - except: - print ('BinToPcd: error: can not read binary input file {File}'.format (File = File)) - sys.exit(1) + parser = argparse.ArgumentParser (prog = __prog__, + description = __description__ + __copyright__, + conflict_handler = 'resolve') + parser.add_argument ("-i", "--input", dest = 'InputFile', type = argparse.FileType ('rb'), action='append', required = True, + help = "Input binary filename. Multiple input files are combined into a single PCD.") + parser.add_argument ("-o", "--output", dest = 'OutputFile', type = argparse.FileType ('wb'), + help = "Output filename for PCD value or PCD statement") + parser.add_argument ("-p", "--pcd", dest = 'PcdName', type = ValidatePcdName, + help = "Name of the PCD in the form .") + parser.add_argument ("-t", "--type", dest = 'PcdType', default = None, choices = ['VPD','HII'], + help = "PCD statement type (HII or VPD). Default is standard.") + parser.add_argument ("-m", "--max-size", dest = 'MaxSize', type = ValidateUnsignedInteger, + help = "Maximum size of the PCD. Ignored with --type HII.") + parser.add_argument ("-f", "--offset", dest = 'Offset', type = ValidateUnsignedInteger, + help = "VPD offset if --type is VPD. UEFI Variable offset if --type is HII. Must be 8-byte aligned.") + parser.add_argument ("-n", "--variable-name", dest = 'VariableName', + help = "UEFI variable name. Only used with --type HII.") + parser.add_argument ("-g", "--variable-guid", type = ValidateGuidName, dest = 'VariableGuid', + help = "UEFI variable GUID C name. Only used with --type HII.") + parser.add_argument ("-x", "--xdr", dest = 'Xdr', action = "store_true", + help = "Encode PCD using the Variable-Length Opaque Data format of RFC 4506 External Data Representation Standard (XDR)") + parser.add_argument ("-v", "--verbose", dest = 'Verbose', action = "store_true", + help = "Increase output messages") + parser.add_argument ("-q", "--quiet", dest = 'Quiet', action = "store_true", + help = "Reduce output messages") + parser.add_argument ("--debug", dest = 'Debug', type = int, metavar = '[0-9]', choices = range (0, 10), default = 0, + help = "Set debug level") - # - # Convert PCD to an encoded string of hex values and determine the size of - # the encoded PCD in bytes. - # - PcdValue, PcdSize = ByteArray (Buffer, args.Xdr) + # + # Parse command line arguments + # + args = parser.parse_args () - # - # Convert binary buffer to a DSC file PCD statement - # - if args.PcdName is None: # - # If PcdName is None, then only a PCD value is being requested. + # Read all binary input files # - Pcd = PcdValue - if args.Verbose: - print ('BinToPcd: Convert binary file to PCD Value') - elif args.PcdType is None: + Buffer = [] + for File in args.InputFile: + try: + Buffer.append (File.read ()) + File.close () + except: + print ('BinToPcd: error: can not read binary input file {File}'.format (File = File)) + sys.exit (1) + # - # If --type is neither VPD nor HII, then use PCD statement syntax that is - # compatible with [PcdsFixedAtBuild], [PcdsPatchableInModule], - # [PcdsDynamicDefault], and [PcdsDynamicExDefault]. + # Convert PCD to an encoded string of hex values and determine the size of + # the encoded PCD in bytes. # - if args.MaxSize is None: - # - # If --max-size is not provided, then do not generate the syntax that - # includes the maximum size. - # - Pcd = ' {Name}|{Value}'.format (Name = args.PcdName, Value = PcdValue) - elif args.MaxSize < PcdSize: - print ('BinToPcd: error: argument --max-size is smaller than input file.') - sys.exit(1) - else: - Pcd = ' {Name}|{Value}|VOID*|{Size}'.format (Name = args.PcdName, Value = PcdValue, Size = args.MaxSize) + PcdValue, PcdSize = ByteArray (Buffer, args.Xdr) - if args.Verbose: - print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections:') - print (' [PcdsFixedAtBuild]') - print (' [PcdsPatchableInModule]') - print (' [PcdsDynamicDefault]') - print (' [PcdsDynamicExDefault]') - elif args.PcdType == 'VPD': - if args.MaxSize is None: - # - # If --max-size is not provided, then set maximum size to the size of the - # binary input file - # - args.MaxSize = PcdSize - if args.MaxSize < PcdSize: - print ('BinToPcd: error: argument --max-size is smaller than input file.') - sys.exit(1) - if args.Offset is None: - # - # if --offset is not provided, then set offset field to '*' so build - # tools will compute offset of PCD in VPD region. - # - Pcd = ' {Name}|*|{Size}|{Value}'.format (Name = args.PcdName, Size = args.MaxSize, Value = PcdValue) - else: - # - # --offset value must be 8-byte aligned - # - if (args.Offset % 8) != 0: - print ('BinToPcd: error: argument --offset must be 8-byte aligned.') - sys.exit(1) - # - # Use the --offset value provided. - # - Pcd = ' {Name}|{Offset}|{Size}|{Value}'.format (Name = args.PcdName, Offset = args.Offset, Size = args.MaxSize, Value = PcdValue) - if args.Verbose: - print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections') - print (' [PcdsDynamicVpd]') - print (' [PcdsDynamicExVpd]') - elif args.PcdType == 'HII': - if args.VariableGuid is None or args.VariableName is None: - print ('BinToPcd: error: arguments --variable-guid and --variable-name are required for --type HII.') - sys.exit(1) - if args.Offset is None: - # - # Use UEFI Variable offset of 0 if --offset is not provided - # - args.Offset = 0 # - # --offset value must be 8-byte aligned + # Convert binary buffer to a DSC file PCD statement # - if (args.Offset % 8) != 0: - print ('BinToPcd: error: argument --offset must be 8-byte aligned.') - sys.exit(1) - Pcd = ' {Name}|L"{VarName}"|{VarGuid}|{Offset}|{Value}'.format (Name = args.PcdName, VarName = args.VariableName, VarGuid = args.VariableGuid, Offset = args.Offset, Value = PcdValue) - if args.Verbose: - print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections') - print (' [PcdsDynamicHii]') - print (' [PcdsDynamicExHii]') + if args.PcdName is None: + # + # If PcdName is None, then only a PCD value is being requested. + # + Pcd = PcdValue + if args.Verbose: + print ('BinToPcd: Convert binary file to PCD Value') + elif args.PcdType is None: + # + # If --type is neither VPD nor HII, then use PCD statement syntax that is + # compatible with [PcdsFixedAtBuild], [PcdsPatchableInModule], + # [PcdsDynamicDefault], and [PcdsDynamicExDefault]. + # + if args.MaxSize is None: + # + # If --max-size is not provided, then do not generate the syntax that + # includes the maximum size. + # + Pcd = ' {Name}|{Value}'.format (Name = args.PcdName, Value = PcdValue) + elif args.MaxSize < PcdSize: + print ('BinToPcd: error: argument --max-size is smaller than input file.') + sys.exit (1) + else: + Pcd = ' {Name}|{Value}|VOID*|{Size}'.format (Name = args.PcdName, Value = PcdValue, Size = args.MaxSize) + + if args.Verbose: + print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections:') + print (' [PcdsFixedAtBuild]') + print (' [PcdsPatchableInModule]') + print (' [PcdsDynamicDefault]') + print (' [PcdsDynamicExDefault]') + elif args.PcdType == 'VPD': + if args.MaxSize is None: + # + # If --max-size is not provided, then set maximum size to the size of the + # binary input file + # + args.MaxSize = PcdSize + if args.MaxSize < PcdSize: + print ('BinToPcd: error: argument --max-size is smaller than input file.') + sys.exit (1) + if args.Offset is None: + # + # if --offset is not provided, then set offset field to '*' so build + # tools will compute offset of PCD in VPD region. + # + Pcd = ' {Name}|*|{Size}|{Value}'.format (Name = args.PcdName, Size = args.MaxSize, Value = PcdValue) + else: + # + # --offset value must be 8-byte aligned + # + if (args.Offset % 8) != 0: + print ('BinToPcd: error: argument --offset must be 8-byte aligned.') + sys.exit (1) + # + # Use the --offset value provided. + # + Pcd = ' {Name}|{Offset}|{Size}|{Value}'.format (Name = args.PcdName, Offset = args.Offset, Size = args.MaxSize, Value = PcdValue) + if args.Verbose: + print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections') + print (' [PcdsDynamicVpd]') + print (' [PcdsDynamicExVpd]') + elif args.PcdType == 'HII': + if args.VariableGuid is None or args.VariableName is None: + print ('BinToPcd: error: arguments --variable-guid and --variable-name are required for --type HII.') + sys.exit (1) + if args.Offset is None: + # + # Use UEFI Variable offset of 0 if --offset is not provided + # + args.Offset = 0 + # + # --offset value must be 8-byte aligned + # + if (args.Offset % 8) != 0: + print ('BinToPcd: error: argument --offset must be 8-byte aligned.') + sys.exit (1) + Pcd = ' {Name}|L"{VarName}"|{VarGuid}|{Offset}|{Value}'.format (Name = args.PcdName, VarName = args.VariableName, VarGuid = args.VariableGuid, Offset = args.Offset, Value = PcdValue) + if args.Verbose: + print ('BinToPcd: Convert binary file to PCD statement compatible with PCD sections') + print (' [PcdsDynamicHii]') + print (' [PcdsDynamicExHii]') - # - # Write PCD value or PCD statement to the output file - # - try: - args.OutputFile.write (Pcd) - args.OutputFile.close () - except: # - # If output file is not specified or it can not be written, then write the - # PCD value or PCD statement to the console + # Write PCD value or PCD statement to the output file # - print (Pcd) + try: + args.OutputFile.write (Pcd) + args.OutputFile.close () + except: + # + # If output file is not specified or it can not be written, then write the + # PCD value or PCD statement to the console + # + print (Pcd) -- 2.14.2.windows.3