\r
if FromPcd.MaxDatumSize:\r
ToPcd.MaxDatumSize = FromPcd.MaxDatumSize\r
+ ToPcd.MaxSizeUserSet = FromPcd.MaxDatumSize\r
if FromPcd.DefaultValue:\r
ToPcd.DefaultValue = FromPcd.DefaultValue\r
if FromPcd.TokenValue:\r
for Name, Guid in Pcds:\r
Pcd = Pcds[Name, Guid]\r
if Pcd.DatumType == "VOID*" and Pcd.MaxDatumSize in ['', None]:\r
+ Pcd.MaxSizeUserSet = None\r
Value = Pcd.DefaultValue\r
if Value in [None, '']:\r
Pcd.MaxDatumSize = '1'\r
Padding = Padding * 2\r
ArraySize = ArraySize / 2\r
if ArraySize < (len(PcdValue) + 1):\r
- EdkLogger.error("build", AUTOGEN_ERROR,\r
+ if Pcd.MaxSizeUserSet:\r
+ EdkLogger.error("build", AUTOGEN_ERROR,\r
"The maximum size of VOID* type PCD '%s.%s' is less than its actual size occupied." % (Pcd.TokenSpaceGuidCName, TokenCName)\r
)\r
+ else:\r
+ ArraySize = len(PcdValue) + 1\r
if ArraySize > len(PcdValue) + 1:\r
NewValue = NewValue + Padding * (ArraySize - len(PcdValue) - 1)\r
PcdValue = NewValue + Padding.strip().rstrip(',') + '}'\r
PcdValue = PcdValue.rstrip('}') + ', 0x00' * (ArraySize - len(PcdValue.split(',')))\r
PcdValue += '}'\r
else:\r
- EdkLogger.error("build", AUTOGEN_ERROR,\r
+ if Pcd.MaxSizeUserSet:\r
+ EdkLogger.error("build", AUTOGEN_ERROR,\r
"The maximum size of VOID* type PCD '%s.%s' is less than its actual size occupied." % (Pcd.TokenSpaceGuidCName, TokenCName)\r
)\r
+ else:\r
+ ArraySize = len(PcdValue) + 1\r
PcdItem = '%s.%s|%s|0x%X' % \\r
(Pcd.TokenSpaceGuidCName, TokenCName, PcdValue, PatchPcd[1])\r
PcdComments = ''\r