BaseTools: standardize GUID and pack size
currently GUID packing and pack size determination is spread throughout the code. This introduces a shared function and dict and routes all code paths through them. Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
committed by
Yonghong Zhu
parent
31ff1c443e
commit
d0a0c52c22
@@ -544,3 +544,14 @@ SECTIONS_HAVE_ITEM_AFTER_ARCH_SET = {TAB_LIBRARY_CLASSES.upper(), TAB_DEPEX.uppe
|
||||
PCDS_DYNAMICEX_HII.upper(),
|
||||
TAB_BUILD_OPTIONS.upper(),
|
||||
TAB_INCLUDES.upper()}
|
||||
|
||||
#
|
||||
# pack codes as used in PcdDb and elsewhere
|
||||
#
|
||||
PACK_PATTERN_GUID = '=LHHBBBBBBBB'
|
||||
PACK_CODE_BY_SIZE = {8:'=Q',
|
||||
4:'=L',
|
||||
2:'=H',
|
||||
1:'=B',
|
||||
0:'=B',
|
||||
16:""}
|
||||
|
@@ -2087,20 +2087,7 @@ class SkuClass():
|
||||
# Pack a registry format GUID
|
||||
#
|
||||
def PackRegistryFormatGuid(Guid):
|
||||
Guid = Guid.split('-')
|
||||
return pack('=LHHBBBBBBBB',
|
||||
int(Guid[0], 16),
|
||||
int(Guid[1], 16),
|
||||
int(Guid[2], 16),
|
||||
int(Guid[3][-4:-2], 16),
|
||||
int(Guid[3][-2:], 16),
|
||||
int(Guid[4][-12:-10], 16),
|
||||
int(Guid[4][-10:-8], 16),
|
||||
int(Guid[4][-8:-6], 16),
|
||||
int(Guid[4][-6:-4], 16),
|
||||
int(Guid[4][-4:-2], 16),
|
||||
int(Guid[4][-2:], 16)
|
||||
)
|
||||
return PackGUID(Guid.split('-'))
|
||||
|
||||
## Get the integer value from string like "14U" or integer like 2
|
||||
#
|
||||
@@ -2126,6 +2113,42 @@ def GetIntegerValue(Input):
|
||||
else:
|
||||
return int(String)
|
||||
|
||||
#
|
||||
# Pack a GUID (registry format) list into a buffer and return it
|
||||
#
|
||||
def PackGUID(Guid):
|
||||
return pack(PACK_PATTERN_GUID,
|
||||
int(Guid[0], 16),
|
||||
int(Guid[1], 16),
|
||||
int(Guid[2], 16),
|
||||
int(Guid[3][-4:-2], 16),
|
||||
int(Guid[3][-2:], 16),
|
||||
int(Guid[4][-12:-10], 16),
|
||||
int(Guid[4][-10:-8], 16),
|
||||
int(Guid[4][-8:-6], 16),
|
||||
int(Guid[4][-6:-4], 16),
|
||||
int(Guid[4][-4:-2], 16),
|
||||
int(Guid[4][-2:], 16)
|
||||
)
|
||||
|
||||
#
|
||||
# Pack a GUID (byte) list into a buffer and return it
|
||||
#
|
||||
def PackByteFormatGUID(Guid):
|
||||
return pack(PACK_PATTERN_GUID,
|
||||
Guid[0],
|
||||
Guid[1],
|
||||
Guid[2],
|
||||
Guid[3],
|
||||
Guid[4],
|
||||
Guid[5],
|
||||
Guid[6],
|
||||
Guid[7],
|
||||
Guid[8],
|
||||
Guid[9],
|
||||
Guid[10],
|
||||
)
|
||||
|
||||
##
|
||||
#
|
||||
# This acts like the main() function for the script, unless it is 'import'ed into another
|
||||
|
Reference in New Issue
Block a user