diff options
author | Carsey, Jaben <jaben.carsey@intel.com> | 2018-04-28 06:32:32 +0800 |
---|---|---|
committer | Yonghong Zhu <yonghong.zhu@intel.com> | 2018-05-04 13:03:05 +0800 |
commit | 5565a8c4d2196b5e55e702169feefeeb07a330d9 (patch) | |
tree | 209dad0eab7b1fe7d3993ddaff977249b4efa0b3 /BaseTools/Source/Python/AutoGen | |
parent | 88252a90d1ca7846731cd2e4e8e860454f7d97a3 (diff) | |
download | edk2-5565a8c4d2196b5e55e702169feefeeb07a330d9.tar.gz edk2-5565a8c4d2196b5e55e702169feefeeb07a330d9.tar.bz2 edk2-5565a8c4d2196b5e55e702169feefeeb07a330d9.zip |
BaseTools: move PCD size calculation functions to PcdClassObject
move both GetPcdMaxSize and GetPcdSize to the PcdClassObject.
fix MAX_SIZE_TYPE to have int values
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>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen')
-rw-r--r-- | BaseTools/Source/Python/AutoGen/GenC.py | 37 | ||||
-rw-r--r-- | BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py | 2 |
2 files changed, 7 insertions, 32 deletions
diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py index 6a2ea924f6..d062588882 100644 --- a/BaseTools/Source/Python/AutoGen/GenC.py +++ b/BaseTools/Source/Python/AutoGen/GenC.py @@ -863,31 +863,6 @@ def DynExPcdTokenNumberMapping(Info, AutoGenH): % (RealTokenCName, RealTokenCName, RealTokenCName, RealTokenCName))
TokenCNameList.add(TokenCName)
-def GetPcdSize(Pcd):
- if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
- Value = Pcd.DefaultValue
- if not Value:
- return 1
- elif Value[0] == 'L':
- return (len(Value) - 2) * 2
- elif Value[0] == '{':
- return len(Value.split(','))
- else:
- return len(Value) - 1
- if Pcd.DatumType == TAB_UINT64:
- return 8
- if Pcd.DatumType == TAB_UINT32:
- return 4
- if Pcd.DatumType == TAB_UINT16:
- return 2
- if Pcd.DatumType == TAB_UINT8:
- return 1
- if Pcd.DatumType == 'BOOLEAN':
- return 1
- else:
- return Pcd.MaxDatumSize
-
-
## Create code for module PCDs
#
# @param Info The ModuleAutoGen object
@@ -1110,7 +1085,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd): "The maximum size of VOID* type PCD '%s.%s' is less than its actual size occupied." % (Pcd.TokenSpaceGuidCName, TokenCName),
ExtraData="[%s]" % str(Info))
else:
- ArraySize = GetPcdSize(Pcd)
+ ArraySize = Pcd.GetPcdSize()
if Unicode:
ArraySize = ArraySize / 2
Value = NewValue + '0 }'
@@ -1150,7 +1125,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd): AutoGenH.Append('extern %s UINT8 %s%s;\n' %(Const, PcdVariableName, Array))
AutoGenH.Append('#define %s %s%s\n' %(GetModeName, Type, PcdVariableName))
- PcdDataSize = GetPcdSize(Pcd)
+ PcdDataSize = Pcd.GetPcdSize()
if Pcd.Type == TAB_PCDS_FIXED_AT_BUILD:
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,FixPcdSizeTokenName))
@@ -1167,14 +1142,14 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd): AutoGenH.Append('extern volatile %s %s %s%s;\n' % (Const, Pcd.DatumType, PcdVariableName, Array))
AutoGenH.Append('#define %s %s%s\n' % (GetModeName, Type, PcdVariableName))
- PcdDataSize = GetPcdSize(Pcd)
+ PcdDataSize = Pcd.GetPcdSize()
AutoGenH.Append('#define %s %s\n' % (PatchPcdSizeTokenName, PcdDataSize))
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,PatchPcdSizeVariableName))
AutoGenH.Append('extern UINTN %s; \n' % PatchPcdSizeVariableName)
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED UINTN %s = %s;\n' % (PatchPcdSizeVariableName,PcdDataSize))
else:
- PcdDataSize = GetPcdSize(Pcd)
+ PcdDataSize = Pcd.GetPcdSize()
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,FixPcdSizeTokenName))
@@ -1333,7 +1308,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd): else:
AutoGenH.Append('extern volatile %s %s%s;\n' % (DatumType, PcdVariableName, Array))
AutoGenH.Append('#define %s %s_gPcd_BinaryPatch_%s\n' %(GetModeName, Type, TokenCName))
- PcdDataSize = GetPcdSize(Pcd)
+ PcdDataSize = Pcd.GetPcdSize()
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPatchPcdSetPtrAndSize((VOID *)_gPcd_BinaryPatch_%s, &%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, TokenCName, PatchPcdSizeVariableName, PatchPcdMaxSizeVariable))
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPatchPcdSetPtrAndSizeS((VOID *)_gPcd_BinaryPatch_%s, &%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, TokenCName, PatchPcdSizeVariableName, PatchPcdMaxSizeVariable))
@@ -1367,7 +1342,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd): AutoGenH.Append('#define _PCD_VALUE_%s %s%s\n' %(TokenCName, Type, PcdVariableName))
else:
AutoGenH.Append('#define _PCD_VALUE_%s %s\n' %(TokenCName, Pcd.DefaultValue))
- PcdDataSize = GetPcdSize(Pcd)
+ PcdDataSize = Pcd.GetPcdSize()
if PcdItemType == TAB_PCDS_FIXED_AT_BUILD:
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
if ConstFixedPcd:
diff --git a/BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py b/BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py index dd78dc5200..2f8f4fac23 100644 --- a/BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py +++ b/BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py @@ -253,7 +253,7 @@ class VAR_CHECK_PCD_VALID_OBJ(object): def updateStorageWidth(self):
try:
- self.StorageWidth = int(MAX_SIZE_TYPE[self.PcdDataType])
+ self.StorageWidth = MAX_SIZE_TYPE[self.PcdDataType]
except:
self.StorageWidth = 0
self.ValidData = False
|