PCD tools update:

1) CollectPCDAction will get all PCD information from FPD file but *not* search SPD and MSA file.
2) ALL PcdBuildDeclaration in FPD file has been moved from common <PcdBuildDeclaration> to seperated module's <PcdBuildDeclaration>. Common <PcdBuildDeclaration> was removed from FPD file.
3) The platform information for Dyanmic and DynamicEx type PCD should be record into <PcdDynamicBuildDeclaration> now.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@415 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2006-06-04 10:00:41 +00:00
parent 356f7d1a20
commit 8840ad589e
15 changed files with 999 additions and 2732 deletions

View File

@ -14671,7 +14671,7 @@
</ModuleSA>
<!-- IPF -->
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="HelloWorld" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="HelloWorld" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -14794,7 +14794,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Partition" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Partition" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -14934,7 +14934,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="English" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="English" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15074,7 +15074,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DiskIo" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DiskIo" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15214,7 +15214,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DiskIoPartition" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DiskIoPartition" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15354,7 +15354,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="SecurityStub" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="SecurityStub" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15494,7 +15494,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DxeMain" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DxeMain" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15651,7 +15651,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiMain" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiMain" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15808,7 +15808,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DxeIpl" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DxeIpl" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15948,7 +15948,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="GraphicsConsole" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="GraphicsConsole" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16088,7 +16088,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Runtime" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Runtime" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16228,7 +16228,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="MonotonicCounter" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="MonotonicCounter" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16368,7 +16368,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Variable" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Variable" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16508,7 +16508,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="EmuVariable" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="EmuVariable" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16648,7 +16648,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="StatusCode" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="StatusCode" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16788,7 +16788,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiBaseMemoryTestInit" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiBaseMemoryTestInit" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16928,7 +16928,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PcdPeim" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PcdPeim" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>
@ -17102,7 +17102,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiVariable" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiVariable" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17242,7 +17242,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="WatchDogTimer" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="WatchDogTimer" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17382,7 +17382,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="FtwLite" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="FtwLite" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17522,7 +17522,7 @@
</PcdBuildData>
</PcdBuildDeclarations>
</ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DebugPort" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DebugPort" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17663,7 +17663,7 @@
</PcdBuildDeclarations>
</ModuleSA>
<!--
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DebugSupport" >
<ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DebugSupport" >
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -28259,170 +28259,6 @@
</ModuleSA>
</OTHER_COMPONENTS>
</FrameworkModules>
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>10000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0f</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x80000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x07</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xAF</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
</PcdBuildDeclarations>
<BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions>

View File

@ -7954,209 +7954,6 @@
</ModuleSA>
</OTHER_COMPONENTS>
</FrameworkModules>
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<TokenSpaceGuid>f1a9de0d-f005-45c4-bdb5-5ec0fb468316</TokenSpaceGuid>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<TokenSpaceGuid>f1a9de0d-f005-45c4-bdb5-5ec0fb468316</TokenSpaceGuid>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<TokenSpaceGuid>f1a9de0d-f005-45c4-bdb5-5ec0fb468316</TokenSpaceGuid>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<TokenSpaceGuid>f1a9de0d-f005-45c4-bdb5-5ec0fb468316</TokenSpaceGuid>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>10000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<TokenSpaceGuid>866baf87-e00c-4dc6-9733-1e23af2115ee</TokenSpaceGuid>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0f</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x80000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x07</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xAF</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>
<Token>0x0001000f</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<DefaultValue>0x08</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdVpdBaseAddress</C_Name>
<Token>0x00010010</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<DefaultValue>0x10000000</DefaultValue>
</PcdBuildData>
</PcdBuildDeclarations>
<BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions>

View File

@ -11025,604 +11025,6 @@
</ModuleSA>
</DXE_DRIVERS>
</FrameworkModules>
<PcdBuildDeclarations>
<!-- <Filename>PcdInfo.xml</Filename> -->
<!-- you can also specify individual elements here, not just a file name. -->
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>10000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x1f</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x80000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x07</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xAF</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtPhysicalDisk</C_Name>
<Token>0x00001000</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>24</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"FW;40960;512"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtVirtualDisk</C_Name>
<Token>0x00001001</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>24</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"FW;40960;512"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtSerialPort</C_Name>
<Token>0x00001002</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>20</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"COM1!COM2"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtUga</C_Name>
<Token>0x00001003</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>50</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"UGA Window 1!UGA Window 2"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtFileSystem</C_Name>
<Token>0x00001004</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>120</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L".!C:\\D\\work\\Remodel\\mdk\\EdkShellBinPkg\\bin\\ia32\\Apps"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtMemorySize</C_Name>
<Token>0x00001005</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>10</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"64!64"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdWinNtMemorySizeForSecMain</C_Name>
<Token>0x00001005</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>10</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"64!64"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdWinNtBootMode</C_Name>
<Token>0x00001006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtCpuModel</C_Name>
<Token>0x00001007</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>48</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"Intel(R) Processor Model"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtCpuSpeed</C_Name>
<Token>0x00001008</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>8</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"3000"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdWinNtFirmwareVolume</C_Name>
<Token>0x00001009</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>44</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"..\\..\\Fv\\Fv_Recovery.fd"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtConsole</C_Name>
<Token>0x0000100a</Token>
<DatumType>VOID*</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>50</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>L"Bus Driver Console Window"</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdRothmanTest</C_Name>
<Token>0x0000100b</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>true</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0B3ADA4F-AE56-4c24-8DEA-F03B7558AE50</VariableGuid>
<VariableName>RothmanVariable</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdWinNtBinaryPatch1</C_Name>
<Token>0x0001000b</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x1234</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdWinNtBinaryPatch2</C_Name>
<Token>0x0001000c</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x5678</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FEATURE_FLAG">
<C_Name>PcdWinNtFeatureFlag1</C_Name>
<Token>0x0001000d</Token>
<DatumType>BOOLEAN</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x1</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtDynamicUINT32</C_Name>
<Token>0x0001000e</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>
<Token>0x0001000f</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x8</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdVpdBaseAddress</C_Name>
<Token>0x00010010</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdTestDynamicUint8</C_Name>
<Token>0x00011000</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x1</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdTestDynamicUint16</C_Name>
<Token>0x00011001</Token>
<DatumType>UINT16</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>2</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x1234</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdTestDynamicUint32</C_Name>
<Token>0x00011002</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>NoDefault</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdTestDynamicUint64</C_Name>
<Token>0x00011003</Token>
<DatumType>UINT64</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>8</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>NoDefault</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdTestDynamicBoolean</C_Name>
<Token>0x00011004</Token>
<DatumType>BOOLEAN</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0x00</MaxSku>
<SkuId>0x00</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>NoDefault</DefaultValue>
</PcdBuildData>
</PcdBuildDeclarations>
<PcdDynamicBuildDeclarations>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtMemorySize</C_Name>

View File

@ -2793,188 +2793,6 @@
</OTHER_COMPONENTS>
</FrameworkModules>
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>10000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x80000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xAF</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPciExpressBaseAddress</C_Name>
<Token>0x0000000A</Token>
<DatumType>UINT64</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xE0000000</DefaultValue>
</PcdBuildData>
</PcdBuildDeclarations>
<BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions>

View File

@ -1005,188 +1005,6 @@
</ModuleSA>
</OTHER_COMPONENTS>
</FrameworkModules>
<PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>1000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>10000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<DatumType>UINT32</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x80000000</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xAF</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<DatumType>UINT8</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>1</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0x0</DefaultValue>
</PcdBuildData>
<PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPciExpressBaseAddress</C_Name>
<Token>0x0000000A</Token>
<DatumType>UINT64</DatumType>
<HiiEnable>false</HiiEnable>
<VpdEnable>false</VpdEnable>
<AlternateNameSpaceEnable>false</AlternateNameSpaceEnable>
<SkuEnable>false</SkuEnable>
<SkuDataArrayEnable>false</SkuDataArrayEnable>
<MaxSku>0</MaxSku>
<SkuId>0</SkuId>
<DatumSize>4</DatumSize>
<VariableGuid>0</VariableGuid>
<VariableName>L""</VariableName>
<DataOffset>0</DataOffset>
<GuidOffset>0</GuidOffset>
<DefaultValue>0xE0000000</DefaultValue>
</PcdBuildData>
</PcdBuildDeclarations>
<BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions>

View File

@ -408,8 +408,14 @@ public class AutoGen {
// isPCDEmulatedDriver parameter will be removed.
//
try {
this.myPcdAutogen = new PCDAutoGenAction(baseName,
baseName.equalsIgnoreCase("PcdEmulatorPeim"));
this.myPcdAutogen = new PCDAutoGenAction(baseName,
null,
null,
null,
this.arch,
null,
baseName.equalsIgnoreCase("PcdEmulatorPeim"),
false);
this.myPcdAutogen.execute();
} catch (Exception e) {
throw new BuildException("PCD Autogen failed:" + e.getMessage());
@ -543,8 +549,14 @@ public class AutoGen {
// isPCDEmulatedDriver parameter will be removed.
//
try {
this.myPcdAutogen = new PCDAutoGenAction(baseName, baseName
.equalsIgnoreCase("PcdEmulatorPeim"));
this.myPcdAutogen = new PCDAutoGenAction(baseName,
null,
null,
null,
this.arch,
null,
baseName.equalsIgnoreCase("PcdEmulatorPeim"),
true);
this.myPcdAutogen.execute();
} catch (Exception e) {
throw new BuildException(e.getMessage());

View File

@ -785,12 +785,6 @@ public class FpdParserTask extends Task {
public void collectPCDInformation() {
CollectPCDAction collectAction = new CollectPCDAction ();
//
// Set memory database log file path. It should be put into same directory with FPD file.
//
GlobalData.getPCDMemoryDBManager().setLogFileName(
fpdFilename.getPath() + ".PCDMemroyDatabaseLog.txt"
);
//
// Collect all PCD information from FPD to MSA, and get help information from SPD.
// These all information will be stored into memory database for future usage such
// as autogen.
@ -802,7 +796,7 @@ public class FpdParserTask extends Task {
ActionMessage.MAX_MESSAGE_LEVEL
);
} catch (Exception exp) {
throw new BuildException (exp.getMessage());
throw new BuildException (String.format("Fail to do PCD preprocess from FPD file, the cause is %s", exp.getMessage()));
}
}
}

View File

@ -18,6 +18,7 @@ package org.tianocore.build.pcd.action;
import java.io.File;
import java.util.List;
import java.util.UUID;
import org.tianocore.build.global.GlobalData;
import org.tianocore.build.pcd.entity.MemoryDatabaseManager;
@ -39,11 +40,35 @@ public class PCDAutoGenAction extends BuildAction {
///
private String moduleName;
///
/// The Guid of module which is analyzed currently.
///
private UUID moduleGuid;
///
/// The name of package whose module is analysized currently.
///
private String packageName;
///
/// The Guid of package whose module is analyszed curretnly.
///
private UUID packageGuid;
///
/// The arch of current module
///
private String arch;
///
/// The version of current module
///
private String version;
///
/// Wheter current module is PCD emulated driver. It is only for
/// emulated PCD driver and will be kept until PCD IMAGE tool ready.
///
private boolean isEmulatedPCDDriver;
///
/// Whether current autogen is for building library used by current module.
///
private boolean isBuildUsedLibrary;
///
/// The generated string for header file.
///
private String hAutoGenString;
@ -61,6 +86,26 @@ public class PCDAutoGenAction extends BuildAction {
this.moduleName = moduleName;
}
public void setModuleGuid(UUID moduleGuid) {
this.moduleGuid = moduleGuid;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public void setPackageGuid(UUID packageGuid) {
this.packageGuid = packageGuid;
}
public void setArch(String arch) {
this.arch = arch;
}
public void setVersion(String version) {
this.version = version;
}
/**
Set parameter isEmulatedPCDDriver
@ -70,6 +115,10 @@ public class PCDAutoGenAction extends BuildAction {
this.isEmulatedPCDDriver = isEmulatedPCDDriver;
}
public void setIsBuildUsedLibrary(boolean isBuildUsedLibrary) {
this.isBuildUsedLibrary = isBuildUsedLibrary;
}
/**
Get the output of generated string for header file.
@ -96,10 +145,26 @@ public class PCDAutoGenAction extends BuildAction {
@param moduleName Parameter of this action class.
@param isEmulatedPCDDriver Parameter of this action class.
**/
public PCDAutoGenAction(String moduleName, boolean isEmulatedPCDDriver) {
dbManager = null;
public PCDAutoGenAction(String moduleName,
UUID moduleGuid,
String packageName,
UUID packageGuid,
String arch,
String version,
boolean isEmulatedPCDDriver,
boolean isBuildUsedLibrary) {
dbManager = null;
hAutoGenString = "";
cAutoGenString = "";
setIsEmulatedPCDDriver(isEmulatedPCDDriver);
setModuleName(moduleName);
setModuleGuid(moduleGuid);
setPackageName(packageName);
setPackageGuid(packageGuid);
setArch(arch);
setVersion(version);
setIsBuildUsedLibrary(isBuildUsedLibrary);
}
/**
@ -130,7 +195,6 @@ public class PCDAutoGenAction extends BuildAction {
void performAction() throws BuildActionException {
ActionMessage.debug(this,
"Starting PCDAutoGenAction to generate autogen.h and autogen.c!...");
//
// Check the PCD memory database manager is valid.
//
@ -141,20 +205,15 @@ public class PCDAutoGenAction extends BuildAction {
dbManager = GlobalData.getPCDMemoryDBManager();
if(dbManager.getDBSize() == 0) {
return;
return;
}
ActionMessage.debug(this,
"PCD memory database contains " + dbManager.getDBSize() + " PCD tokens");
hAutoGenString = "";
cAutoGenString = "";
if(isEmulatedPCDDriver) {
generateAutogenForPCDEmulatedDriver();
} else {
generateAutogenForModule();
}
generateAutogenForModule();
}
/**
@ -168,7 +227,30 @@ public class PCDAutoGenAction extends BuildAction {
int index;
List<UsageInstance> usageInstanceArray;
usageInstanceArray = dbManager.getUsageInstanceArrayByModuleName(moduleName);
if (!isBuildUsedLibrary) {
usageInstanceArray = dbManager.getUsageInstanceArrayByModuleName(moduleName,
moduleGuid,
packageName,
packageGuid,
arch,
version);
dbManager.UsageInstanceContext = usageInstanceArray;
dbManager.CurrentModuleName = moduleName;
} else {
usageInstanceArray = dbManager.UsageInstanceContext;
//
// For building MDE package, although all module are library, but PCD entries of
// these library should be used to autogen.
//
if (usageInstanceArray == null) {
usageInstanceArray = dbManager.getUsageInstanceArrayByModuleName(moduleName,
moduleGuid,
packageName,
packageGuid,
arch,
version);
}
}
if(usageInstanceArray.size() != 0) {
//
@ -182,7 +264,7 @@ public class PCDAutoGenAction extends BuildAction {
"Module " + moduleName + "'s PCD [" + Integer.toHexString(index) +
"]: " + usageInstanceArray.get(index).parentToken.cName);
try {
usageInstanceArray.get(index).generateAutoGen();
usageInstanceArray.get(index).generateAutoGen(isBuildUsedLibrary);
hAutoGenString += usageInstanceArray.get(index).getHAutogenStr() + "\r\n";
cAutoGenString += usageInstanceArray.get(index).getCAutogenStr() + "\r\n";
} catch(EntityException exp) {
@ -190,6 +272,10 @@ public class PCDAutoGenAction extends BuildAction {
}
}
//
// Work around code, In furture following code should be modified that get
// these information from Uplevel Autogen tools.
//
if (moduleName.equalsIgnoreCase("PcdPeim")) {
hAutoGenString += dbManager.PcdPeimHString;
cAutoGenString += dbManager.PcdPeimCString;
@ -206,64 +292,6 @@ public class PCDAutoGenAction extends BuildAction {
);
}
/**
Generate all PCD autogen string and the emulated PCD IMAGE array for emulated driver.
Currently, we should generated all PCD information(maybe all dynamic) as array
in Pei emulated driver for simulating PCD runtime database.
**/
private void generateAutogenForPCDEmulatedDriver() {
int index;
Token[] tokenArray;
UsageInstance usageInstance;
//
// Add "#include 'PcdLib.h'" for Header file
//
hAutoGenString = "#include <MdePkg/Include/Library/PcdLib.h>\r\n";
tokenArray = dbManager.getRecordArray();
for(index = 0; index < tokenArray.length; index ++) {
//
// Get one consumer instance and generate autogen for this token.
//
if(tokenArray[index].consumers != null ) {
if(tokenArray[index].consumers.size() != 0) {
usageInstance = tokenArray[index].consumers.get(0);
try {
usageInstance.generateAutoGen();
} catch(EntityException exp) {
throw new BuildActionException(exp.getMessage());
}
hAutoGenString += usageInstance.getHAutogenStr();
cAutoGenString += usageInstance.getCAutogenStr();
hAutoGenString += "\r\n";
cAutoGenString += "\r\n";
} else {
//
// If the PCD does *not* usded by any module, also generate
// it into autogen.h/autogen.c in Pcd driver according the
// information in FPD file.
//
generateUnReferencePcdAutogenString(tokenArray[index]);
}
}
}
generatePCDEmulatedArray(tokenArray);
ActionMessage.debug(this,
"PCD emulated driver's header: \r\n" + hAutoGenString + "\r\n"
);
ActionMessage.debug(this,
"PCD emulated driver's C code: \r\n" + cAutoGenString + "\r\n"
);
}
/**
Generate unreference token definition string for PCD emulated string.
@ -369,157 +397,6 @@ public class PCDAutoGenAction extends BuildAction {
cAutoGenString += "\r\n";
}
/**
Generate PCDEmulated array in PCDEmulated driver for emulated runtime database.
@param tokenArray All PCD token in memory database.
@throws BuildActionException Unknown PCD_TYPE
**/
private void generatePCDEmulatedArray(Token[] tokenArray)
throws BuildActionException {
int index;
Token token;
String[] guidStrArray;
String value;
//
// The value of String type of PCD entry maybe use byte array but not string direcly
// such as {0x1, 0x2, 0x3}, and define PCD1_STRING_Value as L"string define here"
// For this case, we should generate a string array to C output and use the address
// of generated string array.
//
for(index = 0; index < tokenArray.length; index ++) {
token = tokenArray[index];
value = token.datum.toString();
if(token.datumType == Token.DATUM_TYPE.POINTER) {
if(!((value.charAt(0) == 'L' && value.charAt(1) == '"') ||(value.charAt(0) == '"'))) {
cAutoGenString += String.format("UINT8 _mPcdArray%08x[] = %s;\r\n",
index,
value
);
}
}
}
//
// Output emulated PCD entry array
//
cAutoGenString += "\r\nEMULATED_PCD_ENTRY gEmulatedPcdEntry[] = {\r\n";
for(index = 0; index < tokenArray.length; index ++) {
token = tokenArray[index];
if(index != 0) {
cAutoGenString += ",\r\n";
}
//
// Print Start "{" for a Token item in array
//
cAutoGenString += " {\r\n";
//
// Print Token Name
//
cAutoGenString += String.format(" _PCD_TOKEN_%s,\r\n", token.cName);
//
// Print Hii information
//
if(token.hiiEnabled) {
cAutoGenString += String.format(" TRUE,\r\n");
} else {
cAutoGenString += String.format(" FALSE,\r\n");
}
//
// Print sku information
//
if(token.skuEnabled) {
cAutoGenString += String.format(" TRUE,\r\n");
} else {
cAutoGenString += String.format(" FALSE,\r\n");
}
//
// Print maxSkuCount
//
cAutoGenString += String.format(" %d,\r\n", token.maxSkuCount);
cAutoGenString += String.format(" %d,\r\n", token.skuId);
if(token.variableGuid == null) {
cAutoGenString += " { 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },\r\n";
} else {
guidStrArray =(token.variableGuid.toString()).split("-");
cAutoGenString += String.format(" { 0x%s, 0x%s, 0x%s, { 0x%s, 0x%s, 0x%s, 0x%s, 0x%s, 0x%s, 0x%s, 0x%s } },\r\n",
guidStrArray[0],
guidStrArray[1],
guidStrArray[2],
(guidStrArray[3].substring(0, 2)),
(guidStrArray[3].substring(2, 4)),
(guidStrArray[4].substring(0, 2)),
(guidStrArray[4].substring(2, 4)),
(guidStrArray[4].substring(4, 6)),
(guidStrArray[4].substring(6, 8)),
(guidStrArray[4].substring(8, 10)),
(guidStrArray[4].substring(10, 12))
);
}
value = token.datum.toString();
if(token.datumType == Token.DATUM_TYPE.POINTER) {
if((value.charAt(0) == 'L' && value.charAt(1) == '"') || value.charAt(0) == '"') {
cAutoGenString += String.format(" sizeof(_PCD_VALUE_%s),\r\n", token.cName);
cAutoGenString += String.format(" 0, %s, %s,\r\n", token.variableName, value);
} else {
cAutoGenString += String.format(" sizeof(_mPcdArray%08x),\r\n", index);
cAutoGenString += String.format(" 0, &_mPcdArray%08x, %s,\r\n", index, token.variableName);
}
} else {
switch(token.datumType) {
case UINT8:
cAutoGenString += " 1,\r\n";
break;
case UINT16:
cAutoGenString += " 2,\r\n";
break;
case UINT32:
cAutoGenString += " 4,\r\n";
break;
case UINT64:
cAutoGenString += " 8,\r\n";
break;
case BOOLEAN:
cAutoGenString += " 1,\r\n";
break;
default:
throw new BuildActionException("Unknown datum size");
}
cAutoGenString += String.format(" %s, %s, NULL,\r\n", value, token.variableName);
}
//
// Print end "}" for a token item in array
//
cAutoGenString += " }";
}
cAutoGenString += "\r\n};\r\n";
cAutoGenString += "\r\n";
cAutoGenString += "UINTN\r\n";
cAutoGenString += "GetPcdDataBaseSize(\r\n";
cAutoGenString += " VOID\r\n";
cAutoGenString += " )\r\n";
cAutoGenString += "{\r\n";
cAutoGenString += " return sizeof(gEmulatedPcdEntry);\r\n";
cAutoGenString += "}\r\n";
}
/**
Test case function
@ -527,8 +404,8 @@ public class PCDAutoGenAction extends BuildAction {
**/
public static void main(String argv[]) {
String WorkSpace = "X:/edk2";
String logFilePath = WorkSpace + "/EdkNt32Pkg/Nt32.fpd";
String WorkSpace = "M:/ForPcd/edk2";
String logFilePath = WorkSpace + "/MdePkg/MdePkg.fpd";
//
// At first, CollectPCDAction should be invoked to collect
@ -538,8 +415,6 @@ public class PCDAutoGenAction extends BuildAction {
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
WorkSpace);
GlobalData.getPCDMemoryDBManager().setLogFileName(logFilePath + ".PCDMemroyDatabaseLog.txt");
try {
collectionAction.perform(WorkSpace,
logFilePath,
@ -551,7 +426,13 @@ public class PCDAutoGenAction extends BuildAction {
//
// Then execute the PCDAuotoGenAction to get generated Autogen.h and Autogen.c
//
PCDAutoGenAction autogenAction = new PCDAutoGenAction("PcdDxe",
PCDAutoGenAction autogenAction = new PCDAutoGenAction("BaseLib",
null,
null,
null,
null,
null,
false,
false
);
autogenAction.execute();

View File

@ -93,7 +93,6 @@ public class ShowPCDDatabaseAction extends UIAction {
//
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
workspacePath);
GlobalData.getPCDMemoryDBManager().setLogFileName(fpdFilePath + ".PCDMemroyDatabaseLog.txt");
//
// Collect PCD information.
@ -123,8 +122,10 @@ public class ShowPCDDatabaseAction extends UIAction {
**/
public static void main(String[] argv) throws UIException {
ShowPCDDatabaseAction showAction = new ShowPCDDatabaseAction();
showAction.setWorkspacePath(argv[0]);
showAction.setFPDFilePath(argv[1]);
//showAction.setWorkspacePath(argv[0]);
//showAction.setFPDFilePath(argv[1]);
showAction.setWorkspacePath("M:/tianocore/edk2/trunk/edk2");
showAction.setFPDFilePath("EdkNt32Pkg/Nt32.fpd");
showAction.execute();
}
}

View File

@ -26,8 +26,8 @@ import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.tianocore.build.autogen.CommonDefinition;
import org.tianocore.build.pcd.action.ActionMessage;
/** Database hold all PCD information comes from SPD, MSA, FPD file in memory.
@ -37,12 +37,18 @@ public class MemoryDatabaseManager {
/// Memory database. The string "cName + SpaceNameGuid" is primary key.
/// memory database is in global scope, and it will be used for others PCD tools.
///
private static Map<String, Token> memoryDatabase = null;
///
/// The log file name for dumping memory database.
///
private static String logFileName = null;
private static Map<String, Token> memoryDatabase = null;
///
/// Before build a module, the used libary will be build firstly, the PCD of these
/// libarry is inheritted by the module, so stored module's PCD information as PCD
/// context of building libary.
///
public static List<UsageInstance> UsageInstanceContext = null;
///
///
///
public static String CurrentModuleName = null;
public static String PcdPeimHString = "";
public static String PcdPeimCString = "";
public static String PcdDxeHString = "";
@ -60,22 +66,6 @@ public class MemoryDatabaseManager {
}
}
/**
Get the log file name.
**/
public String getLogFileName() {
return logFileName;
}
/**
Set parameter log file name.
@param fileName log file name parameter.
**/
public void setLogFileName(String fileName) {
logFileName = fileName;
}
/**
Judege whether token exists in memory database
@ -143,8 +133,12 @@ public class MemoryDatabaseManager {
return tokenArray;
}
private ArrayList<Token> getDynamicRecordArray() {
/**
Get record array only contains DYNAMIC or DYNAMIC_EX type PCD.
@return ArrayList
*/
private ArrayList getDynamicRecordArray() {
Token[] tokenArray = getRecordArray();
int index = 0;
int count = 0;
@ -170,40 +164,28 @@ public class MemoryDatabaseManager {
public void getTwoPhaseDynamicRecordArray(ArrayList<Token> pei, ArrayList<Token> dxe) {
int usageInstanceIndex = 0;
int index = 0;
ArrayList<Token> tokenArrayList = getDynamicRecordArray();
List<UsageInstance> usageInstanceArray = null;
ArrayList tokenArrayList = getDynamicRecordArray();
Object[] usageInstanceArray = null;
UsageInstance usageInstance = null;
//pei = new ArrayList<Token>();
//dxe = new ArrayList<Token>();
for (index = 0; index < tokenArrayList.size(); index++) {
boolean found = false;
Token token = (Token) tokenArrayList.get(index);
if (token.producers != null) {
usageInstanceArray = token.producers;
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex++) {
usageInstance = (UsageInstance) usageInstanceArray.get(usageInstanceIndex);
if (CommonDefinition.isPeiPhaseComponent(usageInstance.componentType)) {
if (token.consumers != null) {
usageInstanceArray = token.consumers.entrySet().toArray();
for (usageInstanceIndex = 0; usageInstanceIndex < token.consumers.size(); usageInstanceIndex ++) {
usageInstance =(UsageInstance) (((Map.Entry)usageInstanceArray[usageInstanceIndex]).getValue());
if (usageInstance.isPeiPhaseComponent()) {
pei.add(token);
found = true;
break;
}
}
}
if (!found) {
if (token.consumers != null) {
usageInstanceArray = token.consumers;
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex ++) {
usageInstance =(UsageInstance) usageInstanceArray.get(usageInstanceIndex);
if (CommonDefinition.isPeiPhaseComponent(usageInstance.componentType)) {
pei.add(token);
found = true;
break;
}
}
}
}
//
// If no PEI components reference the PCD entry, we insert it to DXE list
//
if (!found) {
@ -215,17 +197,40 @@ public class MemoryDatabaseManager {
}
/**
Get all PCD record for a module according to module's name.
Get all PCD record for a module according to module's name, module's GUID,
package name, package GUID, arch, version information.
@param moduleName the name of module.
@return all usage instance for this module in memory database.
**/
public List<UsageInstance> getUsageInstanceArrayByModuleName(String moduleName) {
public List<UsageInstance> getUsageInstanceArrayByModuleName(String moduleName,
UUID moduleGuid,
String packageName,
UUID packageGuid,
String arch,
String version) {
String primaryKey = UsageInstance.getPrimaryKey(moduleName,
moduleGuid,
packageName,
packageGuid,
arch,
version);
return getUsageInstanceArrayByKeyString(primaryKey);
}
/**
Get all PCD token for a usage instance according to primary key.
@param primaryKey the primary key of usage instance.
@return List<UsageInstance>
*/
public List<UsageInstance> getUsageInstanceArrayByKeyString(String primaryKey) {
Token[] tokenArray = null;
int recordIndex = 0;
int usageInstanceIndex = 0;
List<UsageInstance> usageInstanceArray = null;
UsageInstance usageInstance = null;
List<UsageInstance> returnArray = new ArrayList<UsageInstance>();
@ -235,29 +240,12 @@ public class MemoryDatabaseManager {
// Loop to find all PCD record related to current module
//
for (recordIndex = 0; recordIndex < getDBSize(); recordIndex ++) {
if (tokenArray[recordIndex].producers != null) {
usageInstanceArray = tokenArray[recordIndex].producers;
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex ++) {
usageInstance =(UsageInstance) usageInstanceArray.get(usageInstanceIndex);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
returnArray.add(usageInstance);
}
if (tokenArray[recordIndex].consumers.size() != 0) {
usageInstance = tokenArray[recordIndex].consumers.get(primaryKey);
if (usageInstance != null) {
returnArray.add(usageInstance);
}
}
if (tokenArray[recordIndex].consumers != null) {
usageInstanceArray = tokenArray[recordIndex].consumers;
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex ++) {
usageInstance =(UsageInstance) usageInstanceArray.get(usageInstanceIndex);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
returnArray.add(usageInstance);
}
}
}
}
if (returnArray.size() == 0) {
ActionMessage.warning(this, "Can *not* find any usage instance for " + moduleName + " !");
}
return returnArray;
@ -274,112 +262,31 @@ public class MemoryDatabaseManager {
int usageIndex = 0;
int moduleIndex = 0;
Token[] tokenArray = null;
Object[] usageInstanceArray = null;
List<String> moduleNames = new ArrayList<String>();
UsageInstance usageInstance = null;
boolean bFound = false;
tokenArray = this.getRecordArray();
//
// Find all producer usage instance for retrieving module's name
//
for (indexToken = 0; indexToken < getDBSize(); indexToken ++) {
for (usageIndex = 0; usageIndex < tokenArray[indexToken].producers.size(); usageIndex ++) {
usageInstance = tokenArray[indexToken].producers.get(usageIndex);
bFound = false;
for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {
if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.moduleName)) {
bFound = true;
break;
}
}
if (!bFound) {
moduleNames.add(usageInstance.moduleName);
}
}
}
tokenArray = getRecordArray();
//
// Find all consumer usage instance for retrieving module's name
//
for (indexToken = 0; indexToken < getDBSize(); indexToken ++) {
usageInstanceArray = tokenArray[indexToken].consumers.entrySet().toArray();
for (usageIndex = 0; usageIndex < tokenArray[indexToken].consumers.size(); usageIndex ++) {
usageInstance = tokenArray[indexToken].consumers.get(usageIndex);
usageInstance = (UsageInstance)((Map.Entry)usageInstanceArray[usageIndex]).getValue();
bFound = false;
for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {
if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.moduleName)) {
if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.getPrimaryKey())) {
bFound = true;
break;
}
}
if (!bFound) {
moduleNames.add(usageInstance.moduleName);
moduleNames.add(usageInstance.getPrimaryKey());
}
}
}
return moduleNames;
}
/**
Dump all PCD record into file for reviewing.
**/
public void DumpAllRecords() {
BufferedWriter bWriter = null;
Object[] tokenArray = null;
Map.Entry entry = null;
Token token = null;
int index = 0;
int usageIndex = 0;
UsageInstance usageInstance = null;
String inheritString = null;
String componentTypeName = null;
try {
bWriter = new BufferedWriter(new FileWriter(new File(logFileName)));
tokenArray = memoryDatabase.entrySet().toArray();
for (index = 0; index < memoryDatabase.size(); index ++) {
entry =(Map.Entry) tokenArray [index];
token =(Token) entry.getValue();
bWriter.write("****** token [" + Integer.toString(index) + "] ******\r\n");
bWriter.write(" cName:" + token.cName + "\r\n");
for (usageIndex = 0; usageIndex < token.producers.size(); usageIndex ++) {
usageInstance =(UsageInstance)token.producers.get(usageIndex);
componentTypeName = CommonDefinition.getComponentTypeString(usageInstance.componentType);
if (usageInstance.isInherit) {
inheritString = "Inherit";
} else {
inheritString = "";
}
bWriter.write(String.format(" (Producer)#%d: %s:%s Package:%s %s\r\n",
usageIndex,
componentTypeName,
usageInstance.moduleName,
usageInstance.packageName,
inheritString
)
);
}
for (usageIndex = 0; usageIndex < token.consumers.size(); usageIndex ++) {
usageInstance =(UsageInstance)token.consumers.get(usageIndex);
componentTypeName = CommonDefinition.getComponentTypeString(usageInstance.componentType);
if (usageInstance.isInherit) {
inheritString = "Inherit";
} else {
inheritString = "";
}
bWriter.write(String.format(" (Consumer)#%d: %s:%s Package:%s %s\r\n",
usageIndex,
componentTypeName,
usageInstance.moduleName,
usageInstance.packageName,
inheritString
)
);
}
}
bWriter.close();
} catch (IOException exp) {
ActionMessage.warning(this, "Failed to open database log file: " + logFileName);
}
}
}

View File

@ -18,8 +18,11 @@ package org.tianocore.build.pcd.entity;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.Map;
import java.util.HashMap;
import org.tianocore.build.pcd.action.ActionMessage;
import org.tianocore.build.pcd.exception.EntityException;
/** This class is to descript a PCD token object. The information of a token mainly
comes from MSA, SPD and setting produced by platform developer.
@ -66,30 +69,11 @@ public class Token {
///
public int tokenNumber;
///
/// The token space name assigned by platform. For Non-DynamicEx driver this value is same.
/// assignedtokenSpaceName is defined in FPD.
///
public UUID assignedtokenSpaceName;
///
/// The token number assigned by platform. The number indiect the offset of this token in platform
/// token space.
/// AssgiendtokenNumber is defined in FPD.
///
public int assignedtokenNumber;
///
/// pcdType is the PCD item type defined by platform developer.
///
public PCD_TYPE pcdType;
///
/// PCDtype is set by platform developer. It is final PCD type of this token.
/// SupportedPcdType is defined in SPD.
///
public PCD_TYPE[] supportedpcdType;
///
/// datumSize is to descript the fix size or max size for this token.
/// datumSize is defined in SPD.
@ -102,13 +86,6 @@ public class Token {
///
public DATUM_TYPE datumType;
///
/// Isplatform is to descript whether this token is defined in platform level.
/// If token is belong to platform level. The value can be different for every
/// module. All are determined by platform developer.
///
public boolean isPlatform;
///
/// hiiEnabled is to indicate whether the token support Hii functionality.
/// hiiEnabled is defined in FPD.
@ -140,11 +117,6 @@ public class Token {
///
public boolean skuEnabled;
///
/// skuDataArrayEnabled is to indicate wheter use the skuData array or default value.
///
public boolean skuDataArrayEnabled;
///
/// skuData contains all value for SkuNumber of token.
/// skuData is defined in FPD.
@ -169,12 +141,6 @@ public class Token {
///
public Object datum;
///
/// Default value of this token.
/// This default value is defined in SPD level.
///
public Object defaultValue;
///
/// BUGBUG: fix comment
/// vpdEnabled is defined in FPD.
@ -187,55 +153,33 @@ public class Token {
///
public long vpdOffset;
///
/// producers array record all module private information who produce this PCD token.
///
public List<UsageInstance> producers;
///
/// consumers array record all module private information who consume this PCD token.
///
public List<UsageInstance> consumers;
public Map<String, UsageInstance> consumers;
/**
Constructure function.
Initialize the value of token.
@param cName The cName of this token
@param tokenSpaceName The tokenSpaceName of this token, it is a GUID.
@param assignedtokenSpaceName The assignedtokenSpaceName of this token, it is a GUID.
**/
public Token(String cName, UUID tokenSpaceName, UUID assignedtokenSpaceName) {
public Token(String cName, UUID tokenSpaceName) {
UUID nullUUID = new UUID(0, 0);
this.cName = cName;
this.tokenSpaceName =(tokenSpaceName == null) ? nullUUID : tokenSpaceName;
this.assignedtokenSpaceName =(assignedtokenSpaceName == null) ? nullUUID : assignedtokenSpaceName;
this.tokenSpaceName = (tokenSpaceName == null) ? nullUUID : tokenSpaceName;
this.tokenNumber = 0;
this.assignedtokenNumber = 0;
this.pcdType = PCD_TYPE.UNKNOWN;
this.supportedpcdType = null;
this.isPlatform = false;
this.datumType = DATUM_TYPE.UNKNOWN;
this.datumSize = -1;
this.defaultValue = null;
this.datum = null;
this.hiiEnabled = false;
this.variableGuid = null;
this.variableName = "";
this.variableOffset = -1;
this.skuEnabled = false;
this.skuDataArrayEnabled = false;
this.skuId = -1;
this.maxSkuCount = -1;
this.skuData = new ArrayList<SkuInstance>();
this.vpdEnabled = false;
this.vpdOffset = -1;
this.producers = new ArrayList<UsageInstance>();
this.consumers = new ArrayList<UsageInstance>();
this.consumers = new HashMap<String, UsageInstance>();
}
/**
@ -247,19 +191,23 @@ public class Token {
@return primary key for this token in token database.
**/
public static String getPrimaryKeyString(String cName, UUID tokenSpaceName,
UUID platformtokenSpaceName) {
public static String getPrimaryKeyString(String cName, UUID tokenSpaceName) {
UUID nullUUID = new UUID(0, 0);
if (platformtokenSpaceName == nullUUID) {
return cName + "_" + tokenSpaceName.toString().replace('-', '_');
if (tokenSpaceName == null) {
return cName + "_" + nullUUID.toString().replace('-', '_');
} else {
return cName + "_" + platformtokenSpaceName.toString().replace('-', '_');
return cName + "_" + tokenSpaceName.toString().replace('-', '_');
}
}
/**
Get the token primary key in token database.
@return String
*/
public String getPrimaryKeyString () {
return cName + "_" + tokenSpaceName.toString().replace('-', '_');
return Token.getPrimaryKeyString(cName, tokenSpaceName);
}
/**
@ -302,99 +250,52 @@ public class Token {
@retval TRUE - Success to add usage instance.
@retval FALSE - Fail to add usage instance
**/
public boolean addUsageInstance(UsageInstance usageInstance) {
if (usageInstance.usage == PCD_USAGE.UNKNOWN) {
return false;
public boolean addUsageInstance(UsageInstance usageInstance)
throws EntityException {
String exceptionStr;
if (isUsageInstanceExist(usageInstance.moduleName,
usageInstance.moduleGUID,
usageInstance.packageName,
usageInstance.packageGUID,
usageInstance.arch,
usageInstance.version)) {
exceptionStr = String.format("PCD %s for module %s has already exist in database, Please check all PCD build entries "+
"in modules PcdPeim in <ModuleSA> to make sure no duplicated definitions!",
usageInstance.parentToken.cName,
usageInstance.moduleName);
throw new EntityException(exceptionStr);
}
if ((usageInstance.usage == PCD_USAGE.ALWAYS_PRODUCED) ||
(usageInstance.usage == PCD_USAGE.SOMETIMES_PRODUCED)) {
producers.add(usageInstance);
} else {
consumers.add(usageInstance);
}
consumers.put(usageInstance.getPrimaryKey(), usageInstance);
return true;
}
/**
Judge whether exist an usage instance for this token
@param moduleName Use xmlFilePath as keyword to search the usage instance
@retval PCD_USAGE - if UsageInstance exists.
@retval UNKNOWN - if UsageInstance does not exist, return UNKONW.
**/
public PCD_USAGE isUsageInstanceExist(String moduleName) {
int index;
UsageInstance usageInstance;
if (moduleName == null) {
ActionMessage.warning(this, "Error parameter for isUsageInstanceExist() function!");
return PCD_USAGE.UNKNOWN;
}
if (moduleName.length() == 0) {
return PCD_USAGE.UNKNOWN;
}
//
// Searching the usage instance in module's producer and consumer according to
// module's name.
//
for (index = 0; index < producers.size(); index ++) {
usageInstance =(UsageInstance)producers.get(index);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
return usageInstance.usage;
}
}
for (index = 0; index < consumers.size(); index ++) {
usageInstance =(UsageInstance)consumers.get(index);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
return usageInstance.usage;
}
}
return PCD_USAGE.UNKNOWN;
}
/**
Get usage instance according to a MSA file name
@param moduleName The file path string of MSA file.
@return usage instance object.
**/
public UsageInstance getUsageInstance(String moduleName) {
int usageIndex;
UsageInstance usageInstance;
if (moduleName == null) {
ActionMessage.warning(this, "Error parameter for isUsageInstanceExist() function!");
return null;
}
if (moduleName.length() == 0) {
return null;
}
if (producers.size() != 0) {
for (usageIndex = 0; usageIndex < producers.size(); usageIndex ++) {
usageInstance =(UsageInstance)producers.get(usageIndex);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
return usageInstance;
}
}
}
if (consumers.size() != 0) {
for (usageIndex = 0; usageIndex < consumers.size(); usageIndex ++) {
usageInstance =(UsageInstance)consumers.get(usageIndex);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
return usageInstance;
}
}
}
return null;
Judge whether exist an usage instance for this token
@param moduleName the name of module
@param moduleGuid the GUID name of modules
@param packageName the name of package contains this module
@param packageGuid the GUID name of package contains this module
@param arch the architecture string
@param version the version string
@return boolean whether exist an usage instance for this token.
*/
public boolean isUsageInstanceExist(String moduleName,
UUID moduleGuid,
String packageName,
UUID packageGuid,
String arch,
String version) {
String keyStr = UsageInstance.getPrimaryKey(moduleName,
moduleGuid,
packageName,
packageGuid,
arch,
version);
return (consumers.get(keyStr) != null);
}
/**

View File

@ -18,10 +18,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
package org.tianocore.build.pcd.entity;
import org.tianocore.build.pcd.exception.EntityException;
import org.tianocore.build.pcd.action.ActionMessage;
import java.util.UUID;
import org.tianocore.build.autogen.CommonDefinition;
import org.tianocore.build.pcd.action.ActionMessage;
import org.tianocore.build.pcd.exception.EntityException;
/**
This class indicate an usage instance for a PCD token. This instance maybe a module
@ -29,50 +30,50 @@ import org.tianocore.build.autogen.CommonDefinition;
is an usage instance for this PCD token.
**/
public class UsageInstance {
///
/// The module type of usage instance.
///
public enum MODULE_TYPE {SEC, PEI_CORE, PEIM, DXE_CORE, DXE_DRIVERS, OTHER_COMPONENTS}
///
/// This parent that this usage instance belongs to.
///
public Token parentToken;
///
/// The usage of this token for platform or module.
///
public Token.PCD_USAGE usage;
///
/// Whether this usage instance inherit from library
///
public boolean isInherit;
///
/// The pcd type of this token for module.
///
public Token.PCD_TYPE modulePcdType;
///
/// The name of the module who contains this PCD.
///
public String moduleName;
///
/// The GUID of the module who contains this PCD.
///
public UUID moduleGUID;
///
/// The name of the package whose module contains this PCD.
///
public String packageName;
///
/// The component type for this usage instance.
/// The GUID of the package whose module contains this PCD.
///
public UUID packageGUID;
///
public int componentType;
/// The PCD type defined for module
///
public Token.PCD_TYPE modulePcdType;
///
/// The default value defined in MSA has high prior than defined in SPD.
/// The arch string of module contains this PCD
///
public Object defaultValueInMSA;
public String arch;
///
/// The default value defined in SPD.
/// The version of module contains this PCD
///
public String version;
///
public Object defaultValueInSPD;
/// The module type for this usage instance.
///
/// Help text in MSA
public MODULE_TYPE moduleType;
///
public String helpTextInMSA;
///
/// Help text in SPD
///
public String helpTextInSPD;
/// The value of the PCD in this usage instance.
///
public Object datum;
///
/// Autogen string for header file.
///
@ -83,367 +84,265 @@ public class UsageInstance {
public String cAutogenStr;
/**
Constructure function
@param parentToken Member variable.
@param usage Member variable.
@param pcdType Member variable.
@param componentType Member variable.
@param defaultValueInMSA Member variable.
@param defaultValueInSPD Member variable.
@param helpTextInMSA Member variable.
@param helpTextInSPD Member variable.
@param moduleName Member variable.
@param packageName Member variable.
@param isInherit Member variable.
Constructure function
@param parentToken Member variable.
@param pcdType Member variable.
@param moduleName Member variable.
@param moduleGUID Member variable.
@param packageName Member variable.
@param packageGUID Member variable.
@param moduleType Member variable.
@param modulePcdType Member variable.
@param arch Member variable.
@param version Member variable.
@param value Member variable.
**/
public UsageInstance(
Token parentToken,
Token.PCD_USAGE usage,
Token.PCD_TYPE pcdType,
int componentType,
Object defaultValueInMSA,
Object defaultValueInSPD,
String helpTextInMSA,
String helpTextInSPD,
String moduleName,
String packageName,
boolean isInherit
)
{
this.parentToken = parentToken;
this.usage = usage;
this.modulePcdType = pcdType;
this.componentType = componentType;
this.defaultValueInMSA = defaultValueInMSA;
this.defaultValueInSPD = defaultValueInSPD;
this.helpTextInMSA = helpTextInMSA;
this.helpTextInSPD = helpTextInSPD;
this.moduleName = moduleName;
this.packageName = packageName;
this.isInherit = isInherit;
public UsageInstance (Token parentToken,
Token.PCD_TYPE pcdType,
String moduleName,
UUID moduleGUID,
String packageName,
UUID packageGUID,
MODULE_TYPE moduleType,
Token.PCD_TYPE modulePcdType,
String arch,
String version,
Object value) {
this.parentToken = parentToken;
this.moduleName = moduleName;
this.moduleGUID = moduleGUID;
this.packageName = packageName;
this.packageGUID = packageGUID;
this.moduleType = moduleType;
this.modulePcdType = modulePcdType;
this.arch = arch;
this.version = version;
this.datum = value;
this.modulePcdType = pcdType;
}
/**
Generate autogen string for header file and C code file.
@throws EntityException Fail to generate.
Get the primary key for usage instance array for every token.
@param moduleName the name of module
@param moduleGUID the GUID name of module
@param packageName the name of package who contains this module
@param packageGUID the GUID name of package
@param arch the archtecture string
@param version the version of this module
@return String primary key
*/
public static String getPrimaryKey(String moduleName,
UUID moduleGUID,
String packageName,
UUID packageGUID,
String arch,
String version) {
//
// Because currently transition schema not require write moduleGuid, package Name, Packge GUID in
// <ModuleSA> section, So currently no expect all paramter must be valid.
return (moduleName + "_" +
((moduleGUID != null) ? moduleGUID.toString() : "NullModuleGuid") + "_" +
((packageName != null) ? packageName : "NullPackageName") + "_" +
((packageGUID != null) ? packageGUID.toString() : "NullPackageGuid") + "_" +
((arch != null) ? arch : "NullArch") + "_" +
((version != null) ? version : "NullVersion"));
}
/**
Get primary key string for this usage instance
@return String primary key string
**/
public void generateAutoGen() throws EntityException {
Object value = null;
int tokenNumber = 0;
public String getPrimaryKey() {
return UsageInstance.getPrimaryKey(moduleName, moduleGUID, packageName, packageGUID, arch, version);
}
/**
Judget whether current module is PEI driver
@return boolean
*/
public boolean isPeiPhaseComponent() {
if ((moduleType == MODULE_TYPE.PEI_CORE) ||
(moduleType == MODULE_TYPE.PEIM)) {
return true;
}
return false;
}
/**
Generate autogen string for header file and C code file.
@throws EntityException Fail to generate.
@param isBuildUsedLibrary whether the autogen is for library.
*/
public void generateAutoGen(boolean isBuildUsedLibrary)
throws EntityException {
hAutogenStr = "";
cAutogenStr = "";
value = this.parentToken.datum;
//
// If this pcd token's PCD_TYPE is DYNAMIC_EX, use itself token space name
// otherwices use assgined token space name from tool automatically.
//
if(parentToken.pcdType == Token.PCD_TYPE.DYNAMIC_EX) {
tokenNumber = parentToken.tokenNumber;
} else {
tokenNumber = parentToken.assignedtokenNumber;
}
hAutogenStr += String.format("#define _PCD_TOKEN_%s 0x%016x\r\n",
parentToken.cName, tokenNumber);
parentToken.cName, parentToken.tokenNumber);
switch(modulePcdType) {
case FEATURE_FLAG:
//
// BUGBUG: The judegement of module PCD type and platform PCD type should not be
// done here, but in wizard tools, But here is just following something
// PcdEmulation driver.
//
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.FEATURE_FLAG.ordinal()) {
throw new EntityException(
String.format(
"%s:Platform PCD Type %d is not compatible with Module PCD Type %d\r\n",
parentToken.cName,
parentToken.pcdType.name(),
modulePcdType.name()
)
);
}
if(CommonDefinition.isLibraryComponent(componentType)) {
hAutogenStr += String.format(
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
parentToken.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
if(isBuildUsedLibrary) {
hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
parentToken.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
} else {
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value.toString()
);
hAutogenStr += String.format(
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName
);
cAutogenStr += String.format(
"GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName);
cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
}
break;
case FIXED_AT_BUILD:
//
// BUGBUG: The judegement of module PCD type and platform PCD type should not be
// done here, but in wizard tools, But here is just following something
// PcdEmulation driver.
//
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.FIXED_AT_BUILD.ordinal()) {
throw new EntityException(
String.format(
"%s:Platform PCD Type %d is not compatible with Module PCD Type %d\r\n",
parentToken.cName,
parentToken.pcdType.name(),
modulePcdType.name()
)
);
}
if(CommonDefinition.isLibraryComponent(componentType)) {
hAutogenStr += String.format(
"extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
if(isBuildUsedLibrary) {
hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
} else {
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value.toString()
);
hAutogenStr += String.format(
"extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
cAutogenStr += String.format(
"GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
}
break;
case PATCHABLE_IN_MODULE:
//
// BUGBUG: The judegement of module PCD type and platform PCD type should not be
// done here, but in wizard tools, But here is just following something
// PcdEmulation driver.
//
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.PATCHABLE_IN_MODULE.ordinal()) {
throw new EntityException(
String.format(
"%s:Platform PCD Type %d is not compatible with Module PCD Type %d\r\n",
parentToken.cName,
parentToken.pcdType.name(),
modulePcdType.name()
)
);
}
if(CommonDefinition.isLibraryComponent(componentType)) {
hAutogenStr += String.format(
"extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
if(isBuildUsedLibrary) {
hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
} else {
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value
);
hAutogenStr += String.format(
"extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
cAutogenStr += String.format(
"GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
}
break;
case DYNAMIC:
//
// BUGBUG: The judegement of module PCD type and platform PCD type should not be
// done here, but in wizard tools, But here is just following something
// PcdEmulation driver.
//
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.DYNAMIC.ordinal()) {
throw new EntityException(
String.format(
"%s:Platform PCD Type %d is not compatible with Module PCD Type %d\r\n",
parentToken.cName,
parentToken.pcdType.name(),
modulePcdType.name()
)
);
}
switch(parentToken.pcdType) {
case FEATURE_FLAG:
if(CommonDefinition.isLibraryComponent(componentType)) {
hAutogenStr += String.format(
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
if(isBuildUsedLibrary) {
hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
} else {
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value
);
hAutogenStr += String.format(
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName
);
cAutogenStr += String.format(
"const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
parentToken.cName);
cAutogenStr += String.format("const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
}
break;
case FIXED_AT_BUILD:
if(CommonDefinition.isLibraryComponent(componentType)) {
hAutogenStr += String.format(
"extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
if(isBuildUsedLibrary) {
hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
} else {
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value
);
hAutogenStr += String.format(
"extern const %s _gPcd_FixedAtBuild_%s\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName
);
cAutogenStr += String.format(
"const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName);
cAutogenStr += String.format("const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
}
break;
case PATCHABLE_IN_MODULE:
hAutogenStr += String.format(
"#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
value
);
hAutogenStr += String.format(
"extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
cAutogenStr += String.format(
"%s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
parentToken.cName,
datum.toString());
hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
cAutogenStr += String.format("%s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;",
Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName);
break;
case DYNAMIC:
hAutogenStr += "\r\n";
hAutogenStr += String.format(
"#define _PCD_MODE_%s_%s LibPcdGet%s(_PCD_TOKEN_%s)\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
Token.getAutogenLibrarydatumTypeString(parentToken.datumType),
parentToken.cName
);
case DYNAMIC:
hAutogenStr += String.format("#define _PCD_MODE_%s_%s LibPcdGet%s(_PCD_TOKEN_%s)\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
Token.getAutogenLibrarydatumTypeString(parentToken.datumType),
parentToken.cName);
break;
default:
ActionMessage.log(
this,
"The PCD_TYPE setted by platform is unknown"
);
default:
throw new EntityException ("The PCD type is unknown");
}
break;
case DYNAMIC_EX:

View File

@ -26,6 +26,6 @@ public class EntityException extends Exception {
@param expStr exception message string.
**/
public EntityException(String expStr) {
super("[EntityException]:" + expStr);
super("[PCD EntityException]:" + expStr);
}
}

View File

@ -17,6 +17,7 @@ package org.tianocore.build.pcd.ui;
import java.awt.*;
import java.awt.event.*;
import java.util.Map;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
@ -82,7 +83,7 @@ public class PCDDatabaseFrame extends JFrame {
public JTree initializeTree() {
Token[] tokenArray = null;
Token token = null;
DefaultMutableTreeNode root = new DefaultMutableTreeNode(dbManager.getLogFileName());
DefaultMutableTreeNode root = new DefaultMutableTreeNode("PCDTreeRoot");
DefaultMutableTreeNode rootByPCD = new DefaultMutableTreeNode("By PCD");
DefaultMutableTreeNode rootByModule = new DefaultMutableTreeNode("By Module");
DefaultMutableTreeNode tokenNode = null;
@ -92,6 +93,7 @@ public class PCDDatabaseFrame extends JFrame {
int index = 0;
int usageIndex = 0;
int moduleIndex = 0;
Object[] objectArray = null;
java.util.List<UsageInstance> usageArray = null;
UsageInstance usageInstance = null;
@ -106,17 +108,14 @@ public class PCDDatabaseFrame extends JFrame {
ActionMessage.debug(this, token.cName);
tokenNode = new DefaultMutableTreeNode(token.cName);
tokenNode.add(new DefaultMutableTreeNode(String.format("TOKEN NUMBER: 0x%08x", token.tokenNumber)));
tokenNode.add(new DefaultMutableTreeNode(String.format("ASSIGNED TOKEN NUMBER: 0x%08x", token.assignedtokenNumber)));
tokenNode.add(new DefaultMutableTreeNode("TOKEN SPACE NAME: " + token.tokenSpaceName.toString()));
tokenNode.add(new DefaultMutableTreeNode("ASSIGNED TOKEN SPACE NAME: " + token.assignedtokenSpaceName.toString()));
tokenNode.add(new DefaultMutableTreeNode("PCD TYPE: " + Token.getStringOfpcdType(token.pcdType)));
tokenNode.add(new DefaultMutableTreeNode("DATUM TYPE: " +Token.getStringOfdatumType(token.datumType)));
tokenNode.add(new DefaultMutableTreeNode("DATUM: " + token.datum.toString()));
tokenNode.add(new DefaultMutableTreeNode("HIIENABLE: " +(token.hiiEnabled?"true":"false")));
tokenNode.add(new DefaultMutableTreeNode("VARIABLE NAME: " + token.variableName));
tokenNode.add(new DefaultMutableTreeNode("VARIABLE GUID: " + token.variableGuid.toString()));
//tokenNode.add(new DefaultMutableTreeNode("VARIABLE GUID: " + token.variableGuid.toString()));
tokenNode.add(new DefaultMutableTreeNode("SKUENABLE: " +(token.skuEnabled?"true":"false")));
tokenNode.add(new DefaultMutableTreeNode("SKUDATA ARRAY ENABLE: " +(token.skuDataArrayEnabled?"true":"false")));
tokenNode.add(new DefaultMutableTreeNode(String.format("SKUID: %d", token.skuId)));
tokenNode.add(new DefaultMutableTreeNode(String.format("MAX SKU COUNT: %d", token.maxSkuCount)));
tokenNode.add(new DefaultMutableTreeNode("VPDENABLE: " +(token.vpdEnabled?"true":"false")));
@ -124,22 +123,16 @@ public class PCDDatabaseFrame extends JFrame {
usageNode = new DefaultMutableTreeNode("PRODUCER");
tokenNode.add(usageNode);
//
// Prepare producer's leaf node
//
for (usageIndex = 0; usageIndex < token.producers.size(); usageIndex ++) {
usageNode.add(new DefaultMutableTreeNode(token.producers.get(usageIndex).moduleName));
}
//
// Prepare consumer's leaf node
//
usageNode = new DefaultMutableTreeNode("CONSUMER");
tokenNode.add(usageNode);
objectArray = token.consumers.entrySet().toArray();
for (usageIndex = 0; usageIndex < token.consumers.size(); usageIndex ++) {
usageNode.add(new DefaultMutableTreeNode(token.consumers.get(usageIndex).moduleName));
usageInstance = (UsageInstance) ((Map.Entry)objectArray[usageIndex]).getValue();
usageNode.add(new DefaultMutableTreeNode(usageInstance.getPrimaryKey()));
}
rootByPCD.add(tokenNode);
@ -155,14 +148,11 @@ public class PCDDatabaseFrame extends JFrame {
}
for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {
moduleNode = new DefaultMutableTreeNode(moduleNames.get(moduleIndex));
usageArray = dbManager.getUsageInstanceArrayByModuleName(moduleNames.get(moduleIndex));
usageArray = dbManager.getUsageInstanceArrayByKeyString(moduleNames.get(moduleIndex));
for (usageIndex = 0; usageIndex < usageArray.size(); usageIndex ++) {
usageInstance = usageArray.get(usageIndex);
usageNode = new DefaultMutableTreeNode(usageInstance.parentToken.cName);
usageNode.add(new DefaultMutableTreeNode("MODULE PCD TYPE: " + Token.getStringOfpcdType(usageInstance.modulePcdType)));
usageNode.add(new DefaultMutableTreeNode("HELP TEXT: " + usageInstance.helpTextInMSA));
usageNode.add(new DefaultMutableTreeNode("IS INHERIT: " +(usageInstance.isInherit?"true":"false")));
usageNode.add(new DefaultMutableTreeNode("USAGE: " + Token.getStringOfUsage(usageInstance.usage)));
moduleNode.add(usageNode);
}
rootByModule.add(moduleNode);