## @file\r
# Routines for generating AutoGen.h and AutoGen.c\r
#\r
-# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
def DynExPcdTokenNumberMapping(Info, AutoGenH):\r
ExTokenCNameList = []\r
PcdExList = []\r
- if Info.IsLibrary:\r
- PcdList = Info.LibraryPcdList\r
- else:\r
- PcdList = Info.ModulePcdList\r
+ # Even it is the Library, the PCD is saved in the ModulePcdList\r
+ PcdList = Info.ModulePcdList\r
for Pcd in PcdList:\r
if Pcd.Type in gDynamicExPcd:\r
ExTokenCNameList.append(Pcd.TokenCName)\r
AutoGenH.Append('// Disabled the macros, as PcdToken and PcdGet/Set are not allowed in the case that more than one DynamicEx Pcds are different Guids but same CName.\n')\r
AutoGenH.Append('// #define %s %s\n' % (PcdTokenName, PcdExTokenName))\r
AutoGenH.Append('// #define %s LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
- AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s \n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
+ AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
if Pcd.DatumType == 'VOID*':\r
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\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
+ 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
+ for Pcd in Info.ModulePcdList:\r
+ if Pcd.Type == TAB_PCDS_FIXED_AT_BUILD:\r
+ TokenCName = Pcd.TokenCName\r
+ Value = Pcd.DefaultValue\r
+ if Pcd.DatumType == 'BOOLEAN':\r
+ BoolValue = Value.upper()\r
+ if BoolValue == 'TRUE':\r
+ Value = '1'\r
+ elif BoolValue == 'FALSE':\r
+ Value = '0'\r
+ for PcdItem in GlobalData.MixedPcd:\r
+ if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdItem]:\r
+ TokenCName = PcdItem[0]\r
+ break\r
+ GuidMacros.append('#define %s %s' % ('_PCD_VALUE_'+TokenCName, Value))\r
+\r
+ if Info.IdfFileList:\r
+ GuidMacros.append('#include "%sImgDefs.h"' % Info.Name)\r
+\r
if GuidMacros:\r
StringH.Append('\n#ifdef VFRCOMPILE\n%s\n#endif\n' % '\n'.join(GuidMacros))\r
\r