from Common.BuildToolError import *\r
from Common.DataType import *\r
from Common.Misc import *\r
-from Common.String import StringToArray\r
+from Common.StringUtils import StringToArray\r
from StrGather import *\r
from GenPcdDb import CreatePcdDatabaseCode\r
from IdfClassObject import *\r
elif Pcd.Type != TAB_PCDS_FIXED_AT_BUILD and Pcd.DatumType in TAB_PCD_NUMERIC_TYPES_VOID:\r
Value = "((%s)%s)" % (Pcd.DatumType, Value)\r
\r
- if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES_VOID:\r
- # handle structure PCD\r
- if Pcd.MaxDatumSize is None or Pcd.MaxDatumSize == '':\r
- EdkLogger.error("build", AUTOGEN_ERROR,\r
- "Unknown [MaxDatumSize] of PCD [%s.%s]" % (Pcd.TokenSpaceGuidCName, TokenCName),\r
- ExtraData="[%s]" % str(Info))\r
-\r
- ArraySize = int(Pcd.MaxDatumSize, 0)\r
- Array = '[%d]' % ArraySize\r
-\r
if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:\r
PcdValueName = '_PCD_PATCHABLE_VALUE_' + TokenCName\r
else:\r
TokenSpaceList = []\r
for Pcd in Info.ModulePcdList:\r
if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenSpaceGuidCName not in TokenSpaceList:\r
- TokenSpaceList += [Pcd.TokenSpaceGuidCName]\r
+ TokenSpaceList.append(Pcd.TokenSpaceGuidCName)\r
\r
SkuMgr = Info.Workspace.Platform.SkuIdMgr\r
AutoGenH.Append("\n// Definition of SkuId Array\n")\r
AutoGenH.Append(gAutoGenHCppPrologueString)\r
if Info.AutoGenVersion >= 0x00010005:\r
# header files includes\r
- AutoGenH.Append("#include <%s>\n" % gBasicHeaderFile)\r
- if Info.ModuleType in gModuleTypeHeaderFile \\r
- and gModuleTypeHeaderFile[Info.ModuleType][0] != gBasicHeaderFile:\r
+ if Info.ModuleType in gModuleTypeHeaderFile:\r
AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0])\r
#\r
# if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h \r
GuidMacros.append('#define %s %s' % (Guid, Info.Module.Guids[Guid]))\r
for Guid, Value in Info.Module.Protocols.items() + Info.Module.Ppis.items():\r
GuidMacros.append('#define %s %s' % (Guid, Value))\r
- # supports FixedAtBuild usage in VFR file\r
+ # supports FixedAtBuild and FeaturePcd usage in VFR file\r
if Info.VfrFileList and Info.ModulePcdList:\r
GuidMacros.append('#define %s %s' % ('FixedPcdGetBool(TokenName)', '_PCD_VALUE_##TokenName'))\r
GuidMacros.append('#define %s %s' % ('FixedPcdGet8(TokenName)', '_PCD_VALUE_##TokenName'))\r
GuidMacros.append('#define %s %s' % ('FixedPcdGet16(TokenName)', '_PCD_VALUE_##TokenName'))\r
GuidMacros.append('#define %s %s' % ('FixedPcdGet32(TokenName)', '_PCD_VALUE_##TokenName'))\r
GuidMacros.append('#define %s %s' % ('FixedPcdGet64(TokenName)', '_PCD_VALUE_##TokenName'))\r
+ GuidMacros.append('#define %s %s' % ('FeaturePcdGet(TokenName)', '_PCD_VALUE_##TokenName'))\r
for Pcd in Info.ModulePcdList:\r
- if Pcd.Type == TAB_PCDS_FIXED_AT_BUILD:\r
+ if Pcd.Type in [TAB_PCDS_FIXED_AT_BUILD, TAB_PCDS_FEATURE_FLAG]:\r
TokenCName = Pcd.TokenCName\r
Value = Pcd.DefaultValue\r
if Pcd.DatumType == 'BOOLEAN':\r