Add Comments for __FLEXIBLE_SIZE () statement.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <[email protected]>
Cc: Liming Gao <[email protected]>
---
BaseTools/Source/Python/Workspace/DscBuildData.py | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py
b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 012e16a488..214e4fd569 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -1325,42 +1325,44 @@ class DscBuildData(PlatformBuildClassObject):
for FieldName in FieldList:
FieldName = "." + FieldName
IsArray =
self.IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])
if IsArray:
Value, ValueSize = ParseFieldValue
(FieldList[FieldName.strip(".")][0])
- CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d /
__ARRAY_ELEMENT_SIZE(%s, %s) + ((%d %% __ARRAY_ELEMENT_SIZE(%s, %s)) ? 1 :
0));\n' % (Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType,
FieldName.strip("."), ValueSize, Pcd.DatumType, FieldName.strip("."));
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d /
__ARRAY_ELEMENT_SIZE(%s, %s) + ((%d %% __ARRAY_ELEMENT_SIZE(%s, %s)) ? 1 : 0));
// From %s Line %d Value %s \n' % (Pcd.DatumType, FieldName.strip("."),
ValueSize, Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType,
FieldName.strip("."), FieldList[FieldName.strip(".")][1],
FieldList[FieldName.strip(".")][2], FieldList[FieldName.strip(".")][0]);
else:
NewFieldName = ''
+ FieldName_ori = FieldName.strip('.')
while '[' in FieldName:
NewFieldName = NewFieldName + FieldName.split('[',
1)[0] + '[0]'
ArrayIndex = int(FieldName.split('[',
1)[1].split(']', 1)[0])
FieldName = FieldName.split(']', 1)[1]
FieldName = NewFieldName + FieldName
while '[' in FieldName:
FieldName = FieldName.rsplit('[', 1)[0]
- CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s,
%d);\n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1)
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s,
%d); // From %s Line %d Value %s\n' % (Pcd.DatumType, FieldName.strip("."),
ArrayIndex + 1, FieldList[FieldName_ori][1], FieldList[FieldName_ori][2],
FieldList[FieldName_ori][0])
for skuname in self.SkuIdMgr.GetSkuChain(SkuName):
inherit_OverrideValues = Pcd.SkuOverrideValues[skuname]
for FieldList in
[inherit_OverrideValues.get(DefaultStoreName)]:
if not FieldList:
continue
for FieldName in FieldList:
FieldName = "." + FieldName
IsArray =
self.IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])
if IsArray:
Value, ValueSize = ParseFieldValue
(FieldList[FieldName.strip(".")][0])
- CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d
/ __ARRAY_ELEMENT_SIZE(%s, %s) + ((%d %% __ARRAY_ELEMENT_SIZE(%s, %s)) ? 1 :
0));\n' % (Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType,
FieldName.strip("."), ValueSize, Pcd.DatumType, FieldName.strip("."));
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d
/ __ARRAY_ELEMENT_SIZE(%s, %s) + ((%d %% __ARRAY_ELEMENT_SIZE(%s, %s)) ? 1 :
0)); // From %s Line %d Value %s\n' % (Pcd.DatumType, FieldName.strip("."),
ValueSize, Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType,
FieldName.strip("."), FieldList[FieldName.strip(".")][1],
FieldList[FieldName.strip(".")][2], FieldList[FieldName.strip(".")][0]);
else:
NewFieldName = ''
+ FieldName_ori = FieldName.strip('.')
while '[' in FieldName:
NewFieldName = NewFieldName +
FieldName.split('[', 1)[0] + '[0]'
ArrayIndex = int(FieldName.split('[',
1)[1].split(']', 1)[0])
FieldName = FieldName.split(']', 1)[1]
FieldName = NewFieldName + FieldName
while '[' in FieldName:
FieldName = FieldName.rsplit('[', 1)[0]
- CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s,
%d);\n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1)
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s,
%d); // From %s Line %d Value %s \n' % (Pcd.DatumType, FieldName.strip("."),
ArrayIndex + 1, FieldList[FieldName_ori][1], FieldList[FieldName_ori][2],
FieldList[FieldName_ori][0])
if skuname == SkuName:
break
#
# Allocate and zero buffer for the PCD
--
2.14.3.windows.1
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel