From 7bf1eb6ef8ae6ccffca6fc8f36b132be704c0b1b Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Thu, 6 Sep 2018 05:50:46 +0800 Subject: [PATCH] BaseTools: refactor to remove duplicate functions Update GenFdsGlobalVariable GetAlignment to support G. replace use of local function in Region with updated shared function. Cc: Yonghong Zhu Cc: Liming Gao Cc: Bob C Feng Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- .../Python/GenFds/GenFdsGlobalVariable.py | 11 +++++----- BaseTools/Source/Python/GenFds/Region.py | 21 +------------------ 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py index eb106b5744..77873d36b9 100644 --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py @@ -512,14 +512,15 @@ class GenFdsGlobalVariable: @staticmethod def GetAlignment (AlignString): - if AlignString is None: + if not AlignString: return 0 - if AlignString in ("1K", "2K", "4K", "8K", "16K", "32K", "64K", "128K", "256K", "512K"): + if AlignString.endswith('K'): return int (AlignString.rstrip('K')) * 1024 - elif AlignString in ("1M", "2M", "4M", "8M", "16M"): + if AlignString.endswith('M'): return int (AlignString.rstrip('M')) * 1024 * 1024 - else: - return int (AlignString) + if AlignString.endswith('G'): + return int (AlignString.rstrip('G')) * 1024 * 1024 * 1024 + return int (AlignString) @staticmethod def GenerateFfs(Output, Input, Type, Guid, Fixed=False, CheckSum=False, Align=None, diff --git a/BaseTools/Source/Python/GenFds/Region.py b/BaseTools/Source/Python/GenFds/Region.py index 7f94b3d66b..5242b74c9e 100644 --- a/BaseTools/Source/Python/GenFds/Region.py +++ b/BaseTools/Source/Python/GenFds/Region.py @@ -124,7 +124,7 @@ class Region(RegionClassObject): # self.BlockInfoOfRegion(BlockSizeList, FvObj) self.FvAddress = self.FvAddress + FvOffset - FvAlignValue = self.GetFvAlignValue(FvObj.FvAlignment) + FvAlignValue = GenFdsGlobalVariable.GetAlignment(FvObj.FvAlignment) if self.FvAddress % FvAlignValue != 0: EdkLogger.error("GenFds", GENFDS_ERROR, "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment)) @@ -277,25 +277,6 @@ class Region(RegionClassObject): GenFdsGlobalVariable.InfLogger(' Region Name = None') self.PadBuffer(Buffer, ErasePolarity, Size) - def GetFvAlignValue(self, Str): - AlignValue = 1 - Granu = 1 - Str = Str.strip().upper() - if Str.endswith('K'): - Granu = 1024 - Str = Str[:-1] - elif Str.endswith('M'): - Granu = 1024 * 1024 - Str = Str[:-1] - elif Str.endswith('G'): - Granu = 1024 * 1024 * 1024 - Str = Str[:-1] - else: - pass - - AlignValue = int(Str) * Granu - return AlignValue - ## BlockSizeOfRegion() # # @param BlockSizeList List of block information -- 2.39.2