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> </ModuleSA>
<!-- IPF --> <!-- IPF -->
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="HelloWorld" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="HelloWorld" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -14794,7 +14794,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Partition" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Partition" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -14934,7 +14934,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="English" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="English" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15074,7 +15074,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DiskIo" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DiskIo" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15214,7 +15214,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DiskIoPartition" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DiskIoPartition" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15354,7 +15354,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="SecurityStub" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="SecurityStub" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15494,7 +15494,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DxeMain" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DxeMain" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15651,7 +15651,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiMain" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiMain" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15808,7 +15808,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DxeIpl" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DxeIpl" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -15948,7 +15948,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="GraphicsConsole" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="GraphicsConsole" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16088,7 +16088,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Runtime" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Runtime" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16228,7 +16228,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="MonotonicCounter" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="MonotonicCounter" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16368,7 +16368,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="Variable" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="Variable" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16508,7 +16508,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="EmuVariable" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="EmuVariable" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16648,7 +16648,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="StatusCode" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="StatusCode" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16788,7 +16788,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiBaseMemoryTestInit" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiBaseMemoryTestInit" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -16928,7 +16928,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PcdPeim" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PcdPeim" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name> <C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>
@ -17102,7 +17102,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="PeiVariable" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="PeiVariable" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17242,7 +17242,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="WatchDogTimer" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="WatchDogTimer" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17382,7 +17382,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="FtwLite" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="FtwLite" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17522,7 +17522,7 @@
</PcdBuildData> </PcdBuildData>
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DebugPort" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DebugPort" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -17663,7 +17663,7 @@
</PcdBuildDeclarations> </PcdBuildDeclarations>
</ModuleSA> </ModuleSA>
<!-- <!--
<ModuleSA Arch="X64" FvBinding="NULL" ModuleName="DebugSupport" > <ModuleSA Arch="IPF" FvBinding="NULL" ModuleName="DebugSupport" >
<PcdBuildDeclarations> <PcdBuildDeclarations>
<PcdBuildData ItemType="FIXED_AT_BUILD"> <PcdBuildData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name> <C_Name>PcdMaximumUnicodeStringLength</C_Name>
@ -28259,170 +28259,6 @@
</ModuleSA> </ModuleSA>
</OTHER_COMPONENTS> </OTHER_COMPONENTS>
</FrameworkModules> </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> <BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/> <OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions> </BuildOptions>

View File

@ -7954,209 +7954,6 @@
</ModuleSA> </ModuleSA>
</OTHER_COMPONENTS> </OTHER_COMPONENTS>
</FrameworkModules> </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> <BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/> <OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions> </BuildOptions>

View File

@ -11025,604 +11025,6 @@
</ModuleSA> </ModuleSA>
</DXE_DRIVERS> </DXE_DRIVERS>
</FrameworkModules> </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> <PcdDynamicBuildDeclarations>
<PcdBuildData ItemType="DYNAMIC"> <PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtMemorySize</C_Name> <C_Name>PcdWinNtMemorySize</C_Name>

View File

@ -2793,188 +2793,6 @@
</OTHER_COMPONENTS> </OTHER_COMPONENTS>
</FrameworkModules> </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> <BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/> <OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions> </BuildOptions>

View File

@ -1005,188 +1005,6 @@
</ModuleSA> </ModuleSA>
</OTHER_COMPONENTS> </OTHER_COMPONENTS>
</FrameworkModules> </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> <BuildOptions>
<OutputDirectory IntermediateDirectories="UNIFIED"/> <OutputDirectory IntermediateDirectories="UNIFIED"/>
</BuildOptions> </BuildOptions>

View File

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

View File

@ -785,12 +785,6 @@ public class FpdParserTask extends Task {
public void collectPCDInformation() { public void collectPCDInformation() {
CollectPCDAction collectAction = new CollectPCDAction (); 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. // 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 // These all information will be stored into memory database for future usage such
// as autogen. // as autogen.
@ -802,7 +796,7 @@ public class FpdParserTask extends Task {
ActionMessage.MAX_MESSAGE_LEVEL ActionMessage.MAX_MESSAGE_LEVEL
); );
} catch (Exception exp) { } 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.io.File;
import java.util.List; import java.util.List;
import java.util.UUID;
import org.tianocore.build.global.GlobalData; import org.tianocore.build.global.GlobalData;
import org.tianocore.build.pcd.entity.MemoryDatabaseManager; import org.tianocore.build.pcd.entity.MemoryDatabaseManager;
@ -39,11 +40,35 @@ public class PCDAutoGenAction extends BuildAction {
/// ///
private String moduleName; 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 /// Wheter current module is PCD emulated driver. It is only for
/// emulated PCD driver and will be kept until PCD IMAGE tool ready. /// emulated PCD driver and will be kept until PCD IMAGE tool ready.
/// ///
private boolean isEmulatedPCDDriver; private boolean isEmulatedPCDDriver;
/// ///
/// Whether current autogen is for building library used by current module.
///
private boolean isBuildUsedLibrary;
///
/// The generated string for header file. /// The generated string for header file.
/// ///
private String hAutoGenString; private String hAutoGenString;
@ -61,6 +86,26 @@ public class PCDAutoGenAction extends BuildAction {
this.moduleName = moduleName; 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 Set parameter isEmulatedPCDDriver
@ -70,6 +115,10 @@ public class PCDAutoGenAction extends BuildAction {
this.isEmulatedPCDDriver = isEmulatedPCDDriver; this.isEmulatedPCDDriver = isEmulatedPCDDriver;
} }
public void setIsBuildUsedLibrary(boolean isBuildUsedLibrary) {
this.isBuildUsedLibrary = isBuildUsedLibrary;
}
/** /**
Get the output of generated string for header file. 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 moduleName Parameter of this action class.
@param isEmulatedPCDDriver Parameter of this action class. @param isEmulatedPCDDriver Parameter of this action class.
**/ **/
public PCDAutoGenAction(String moduleName, boolean isEmulatedPCDDriver) { public PCDAutoGenAction(String moduleName,
dbManager = null; UUID moduleGuid,
String packageName,
UUID packageGuid,
String arch,
String version,
boolean isEmulatedPCDDriver,
boolean isBuildUsedLibrary) {
dbManager = null;
hAutoGenString = "";
cAutoGenString = "";
setIsEmulatedPCDDriver(isEmulatedPCDDriver); setIsEmulatedPCDDriver(isEmulatedPCDDriver);
setModuleName(moduleName); 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 { void performAction() throws BuildActionException {
ActionMessage.debug(this, ActionMessage.debug(this,
"Starting PCDAutoGenAction to generate autogen.h and autogen.c!..."); "Starting PCDAutoGenAction to generate autogen.h and autogen.c!...");
// //
// Check the PCD memory database manager is valid. // Check the PCD memory database manager is valid.
// //
@ -141,20 +205,15 @@ public class PCDAutoGenAction extends BuildAction {
dbManager = GlobalData.getPCDMemoryDBManager(); dbManager = GlobalData.getPCDMemoryDBManager();
if(dbManager.getDBSize() == 0) { if(dbManager.getDBSize() == 0) {
return; return;
} }
ActionMessage.debug(this, ActionMessage.debug(this,
"PCD memory database contains " + dbManager.getDBSize() + " PCD tokens"); "PCD memory database contains " + dbManager.getDBSize() + " PCD tokens");
hAutoGenString = "";
cAutoGenString = "";
if(isEmulatedPCDDriver) {
generateAutogenForPCDEmulatedDriver(); generateAutogenForModule();
} else {
generateAutogenForModule();
}
} }
/** /**
@ -168,7 +227,30 @@ public class PCDAutoGenAction extends BuildAction {
int index; int index;
List<UsageInstance> usageInstanceArray; 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) { if(usageInstanceArray.size() != 0) {
// //
@ -182,7 +264,7 @@ public class PCDAutoGenAction extends BuildAction {
"Module " + moduleName + "'s PCD [" + Integer.toHexString(index) + "Module " + moduleName + "'s PCD [" + Integer.toHexString(index) +
"]: " + usageInstanceArray.get(index).parentToken.cName); "]: " + usageInstanceArray.get(index).parentToken.cName);
try { try {
usageInstanceArray.get(index).generateAutoGen(); usageInstanceArray.get(index).generateAutoGen(isBuildUsedLibrary);
hAutoGenString += usageInstanceArray.get(index).getHAutogenStr() + "\r\n"; hAutoGenString += usageInstanceArray.get(index).getHAutogenStr() + "\r\n";
cAutoGenString += usageInstanceArray.get(index).getCAutogenStr() + "\r\n"; cAutoGenString += usageInstanceArray.get(index).getCAutogenStr() + "\r\n";
} catch(EntityException exp) { } 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")) { if (moduleName.equalsIgnoreCase("PcdPeim")) {
hAutoGenString += dbManager.PcdPeimHString; hAutoGenString += dbManager.PcdPeimHString;
cAutoGenString += dbManager.PcdPeimCString; 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. Generate unreference token definition string for PCD emulated string.
@ -369,157 +397,6 @@ public class PCDAutoGenAction extends BuildAction {
cAutoGenString += "\r\n"; 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 Test case function
@ -527,8 +404,8 @@ public class PCDAutoGenAction extends BuildAction {
**/ **/
public static void main(String argv[]) { public static void main(String argv[]) {
String WorkSpace = "X:/edk2"; String WorkSpace = "M:/ForPcd/edk2";
String logFilePath = WorkSpace + "/EdkNt32Pkg/Nt32.fpd"; String logFilePath = WorkSpace + "/MdePkg/MdePkg.fpd";
// //
// At first, CollectPCDAction should be invoked to collect // 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", GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
WorkSpace); WorkSpace);
GlobalData.getPCDMemoryDBManager().setLogFileName(logFilePath + ".PCDMemroyDatabaseLog.txt");
try { try {
collectionAction.perform(WorkSpace, collectionAction.perform(WorkSpace,
logFilePath, logFilePath,
@ -551,7 +426,13 @@ public class PCDAutoGenAction extends BuildAction {
// //
// Then execute the PCDAuotoGenAction to get generated Autogen.h and Autogen.c // 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 false
); );
autogenAction.execute(); autogenAction.execute();

View File

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

View File

@ -26,8 +26,8 @@ import java.util.HashMap;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import org.tianocore.build.autogen.CommonDefinition;
import org.tianocore.build.pcd.action.ActionMessage; import org.tianocore.build.pcd.action.ActionMessage;
/** Database hold all PCD information comes from SPD, MSA, FPD file in memory. /** 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. The string "cName + SpaceNameGuid" is primary key.
/// memory database is in global scope, and it will be used for others PCD tools. /// memory database is in global scope, and it will be used for others PCD tools.
/// ///
private static Map<String, Token> memoryDatabase = null; private static Map<String, Token> memoryDatabase = null;
///
/// The log file name for dumping memory database.
///
private static String logFileName = 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 PcdPeimHString = "";
public static String PcdPeimCString = ""; public static String PcdPeimCString = "";
public static String PcdDxeHString = ""; 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 Judege whether token exists in memory database
@ -143,8 +133,12 @@ public class MemoryDatabaseManager {
return tokenArray; return tokenArray;
} }
/**
Get record array only contains DYNAMIC or DYNAMIC_EX type PCD.
private ArrayList<Token> getDynamicRecordArray() { @return ArrayList
*/
private ArrayList getDynamicRecordArray() {
Token[] tokenArray = getRecordArray(); Token[] tokenArray = getRecordArray();
int index = 0; int index = 0;
int count = 0; int count = 0;
@ -170,40 +164,28 @@ public class MemoryDatabaseManager {
public void getTwoPhaseDynamicRecordArray(ArrayList<Token> pei, ArrayList<Token> dxe) { public void getTwoPhaseDynamicRecordArray(ArrayList<Token> pei, ArrayList<Token> dxe) {
int usageInstanceIndex = 0; int usageInstanceIndex = 0;
int index = 0; int index = 0;
ArrayList<Token> tokenArrayList = getDynamicRecordArray(); ArrayList tokenArrayList = getDynamicRecordArray();
List<UsageInstance> usageInstanceArray = null; Object[] usageInstanceArray = null;
UsageInstance usageInstance = null; UsageInstance usageInstance = null;
//pei = new ArrayList<Token>();
//dxe = new ArrayList<Token>();
for (index = 0; index < tokenArrayList.size(); index++) { for (index = 0; index < tokenArrayList.size(); index++) {
boolean found = false; boolean found = false;
Token token = (Token) tokenArrayList.get(index); Token token = (Token) tokenArrayList.get(index);
if (token.producers != null) { if (token.consumers != null) {
usageInstanceArray = token.producers; usageInstanceArray = token.consumers.entrySet().toArray();
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex++) { for (usageInstanceIndex = 0; usageInstanceIndex < token.consumers.size(); usageInstanceIndex ++) {
usageInstance = (UsageInstance) usageInstanceArray.get(usageInstanceIndex); usageInstance =(UsageInstance) (((Map.Entry)usageInstanceArray[usageInstanceIndex]).getValue());
if (CommonDefinition.isPeiPhaseComponent(usageInstance.componentType)) { if (usageInstance.isPeiPhaseComponent()) {
pei.add(token); pei.add(token);
found = true; found = true;
break; 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 no PEI components reference the PCD entry, we insert it to DXE list
// //
if (!found) { 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. @param moduleName the name of module.
@return all usage instance for this module in memory database. @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; Token[] tokenArray = null;
int recordIndex = 0; int recordIndex = 0;
int usageInstanceIndex = 0;
List<UsageInstance> usageInstanceArray = null;
UsageInstance usageInstance = null; UsageInstance usageInstance = null;
List<UsageInstance> returnArray = new ArrayList<UsageInstance>(); List<UsageInstance> returnArray = new ArrayList<UsageInstance>();
@ -235,29 +240,12 @@ public class MemoryDatabaseManager {
// Loop to find all PCD record related to current module // Loop to find all PCD record related to current module
// //
for (recordIndex = 0; recordIndex < getDBSize(); recordIndex ++) { for (recordIndex = 0; recordIndex < getDBSize(); recordIndex ++) {
if (tokenArray[recordIndex].producers != null) { if (tokenArray[recordIndex].consumers.size() != 0) {
usageInstanceArray = tokenArray[recordIndex].producers; usageInstance = tokenArray[recordIndex].consumers.get(primaryKey);
for (usageInstanceIndex = 0; usageInstanceIndex < usageInstanceArray.size(); usageInstanceIndex ++) { if (usageInstance != null) {
usageInstance =(UsageInstance) usageInstanceArray.get(usageInstanceIndex); returnArray.add(usageInstance);
if (usageInstance.moduleName.equalsIgnoreCase(moduleName)) {
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; return returnArray;
@ -274,112 +262,31 @@ public class MemoryDatabaseManager {
int usageIndex = 0; int usageIndex = 0;
int moduleIndex = 0; int moduleIndex = 0;
Token[] tokenArray = null; Token[] tokenArray = null;
Object[] usageInstanceArray = null;
List<String> moduleNames = new ArrayList<String>(); List<String> moduleNames = new ArrayList<String>();
UsageInstance usageInstance = null; UsageInstance usageInstance = null;
boolean bFound = false; boolean bFound = false;
tokenArray = this.getRecordArray(); tokenArray = 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);
}
}
}
// //
// Find all consumer usage instance for retrieving module's name // Find all consumer usage instance for retrieving module's name
// //
for (indexToken = 0; indexToken < getDBSize(); indexToken ++) { for (indexToken = 0; indexToken < getDBSize(); indexToken ++) {
usageInstanceArray = tokenArray[indexToken].consumers.entrySet().toArray();
for (usageIndex = 0; usageIndex < tokenArray[indexToken].consumers.size(); usageIndex ++) { for (usageIndex = 0; usageIndex < tokenArray[indexToken].consumers.size(); usageIndex ++) {
usageInstance = tokenArray[indexToken].consumers.get(usageIndex); usageInstance = (UsageInstance)((Map.Entry)usageInstanceArray[usageIndex]).getValue();
bFound = false; bFound = false;
for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) { for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {
if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.moduleName)) { if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.getPrimaryKey())) {
bFound = true; bFound = true;
break; break;
} }
} }
if (!bFound) { if (!bFound) {
moduleNames.add(usageInstance.moduleName); moduleNames.add(usageInstance.getPrimaryKey());
} }
} }
} }
return moduleNames; 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.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.Map;
import java.util.HashMap;
import org.tianocore.build.pcd.action.ActionMessage; 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 /** 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. comes from MSA, SPD and setting produced by platform developer.
@ -66,30 +69,11 @@ public class Token {
/// ///
public int tokenNumber; 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. /// pcdType is the PCD item type defined by platform developer.
/// ///
public PCD_TYPE pcdType; 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 to descript the fix size or max size for this token.
/// datumSize is defined in SPD. /// datumSize is defined in SPD.
@ -102,13 +86,6 @@ public class Token {
/// ///
public DATUM_TYPE datumType; 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 to indicate whether the token support Hii functionality.
/// hiiEnabled is defined in FPD. /// hiiEnabled is defined in FPD.
@ -140,11 +117,6 @@ public class Token {
/// ///
public boolean skuEnabled; 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 contains all value for SkuNumber of token.
/// skuData is defined in FPD. /// skuData is defined in FPD.
@ -169,12 +141,6 @@ public class Token {
/// ///
public Object datum; public Object datum;
///
/// Default value of this token.
/// This default value is defined in SPD level.
///
public Object defaultValue;
/// ///
/// BUGBUG: fix comment /// BUGBUG: fix comment
/// vpdEnabled is defined in FPD. /// vpdEnabled is defined in FPD.
@ -187,55 +153,33 @@ public class Token {
/// ///
public long vpdOffset; 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. /// consumers array record all module private information who consume this PCD token.
/// ///
public List<UsageInstance> consumers; public Map<String, UsageInstance> consumers;
/** public Token(String cName, UUID tokenSpaceName) {
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) {
UUID nullUUID = new UUID(0, 0); UUID nullUUID = new UUID(0, 0);
this.cName = cName; this.cName = cName;
this.tokenSpaceName =(tokenSpaceName == null) ? nullUUID : tokenSpaceName; this.tokenSpaceName = (tokenSpaceName == null) ? nullUUID : tokenSpaceName;
this.assignedtokenSpaceName =(assignedtokenSpaceName == null) ? nullUUID : assignedtokenSpaceName;
this.tokenNumber = 0; this.tokenNumber = 0;
this.assignedtokenNumber = 0;
this.pcdType = PCD_TYPE.UNKNOWN; this.pcdType = PCD_TYPE.UNKNOWN;
this.supportedpcdType = null;
this.isPlatform = false;
this.datumType = DATUM_TYPE.UNKNOWN; this.datumType = DATUM_TYPE.UNKNOWN;
this.datumSize = -1; this.datumSize = -1;
this.defaultValue = null;
this.datum = null; this.datum = null;
this.hiiEnabled = false; this.hiiEnabled = false;
this.variableGuid = null; this.variableGuid = null;
this.variableName = ""; this.variableName = "";
this.variableOffset = -1; this.variableOffset = -1;
this.skuEnabled = false; this.skuEnabled = false;
this.skuDataArrayEnabled = false;
this.skuId = -1; this.skuId = -1;
this.maxSkuCount = -1; this.maxSkuCount = -1;
this.skuData = new ArrayList<SkuInstance>(); this.skuData = new ArrayList<SkuInstance>();
this.vpdEnabled = false; this.vpdEnabled = false;
this.vpdOffset = -1; this.vpdOffset = -1;
this.producers = new ArrayList<UsageInstance>(); this.consumers = new HashMap<String, UsageInstance>();
this.consumers = new ArrayList<UsageInstance>();
} }
/** /**
@ -247,19 +191,23 @@ public class Token {
@return primary key for this token in token database. @return primary key for this token in token database.
**/ **/
public static String getPrimaryKeyString(String cName, UUID tokenSpaceName, public static String getPrimaryKeyString(String cName, UUID tokenSpaceName) {
UUID platformtokenSpaceName) {
UUID nullUUID = new UUID(0, 0); UUID nullUUID = new UUID(0, 0);
if (platformtokenSpaceName == nullUUID) { if (tokenSpaceName == null) {
return cName + "_" + tokenSpaceName.toString().replace('-', '_'); return cName + "_" + nullUUID.toString().replace('-', '_');
} else { } else {
return cName + "_" + platformtokenSpaceName.toString().replace('-', '_'); return cName + "_" + tokenSpaceName.toString().replace('-', '_');
} }
} }
/**
Get the token primary key in token database.
@return String
*/
public String getPrimaryKeyString () { 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 TRUE - Success to add usage instance.
@retval FALSE - Fail to add usage instance @retval FALSE - Fail to add usage instance
**/ **/
public boolean addUsageInstance(UsageInstance usageInstance) { public boolean addUsageInstance(UsageInstance usageInstance)
if (usageInstance.usage == PCD_USAGE.UNKNOWN) { throws EntityException {
return false; 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) || consumers.put(usageInstance.getPrimaryKey(), usageInstance);
(usageInstance.usage == PCD_USAGE.SOMETIMES_PRODUCED)) {
producers.add(usageInstance);
} else {
consumers.add(usageInstance);
}
return true; return true;
} }
/** /**
Judge whether exist an usage instance for this token Judge whether exist an usage instance for this token
@param moduleName Use xmlFilePath as keyword to search the usage instance @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
@retval PCD_USAGE - if UsageInstance exists. @return boolean whether exist an usage instance for this token.
@retval UNKNOWN - if UsageInstance does not exist, return UNKONW. */
**/ public boolean isUsageInstanceExist(String moduleName,
public PCD_USAGE isUsageInstanceExist(String moduleName) { UUID moduleGuid,
int index; String packageName,
UsageInstance usageInstance; UUID packageGuid,
String arch,
if (moduleName == null) { String version) {
ActionMessage.warning(this, "Error parameter for isUsageInstanceExist() function!"); String keyStr = UsageInstance.getPrimaryKey(moduleName,
return PCD_USAGE.UNKNOWN; moduleGuid,
} packageName,
packageGuid,
if (moduleName.length() == 0) { arch,
return PCD_USAGE.UNKNOWN; version);
} return (consumers.get(keyStr) != null);
//
// 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;
} }
/** /**

View File

@ -18,10 +18,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
package org.tianocore.build.pcd.entity; package org.tianocore.build.pcd.entity;
import org.tianocore.build.pcd.exception.EntityException; import java.util.UUID;
import org.tianocore.build.pcd.action.ActionMessage;
import org.tianocore.build.autogen.CommonDefinition; 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 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. is an usage instance for this PCD token.
**/ **/
public class UsageInstance { 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. /// This parent that this usage instance belongs to.
/// ///
public Token parentToken; 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. /// The name of the module who contains this PCD.
/// ///
public String moduleName; 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. /// The name of the package whose module contains this PCD.
/// ///
public String packageName; public String packageName;
/// ///
/// The component type for this usage instance. /// The GUID of the package whose module contains this PCD.
/// ///
public int componentType; public UUID packageGUID;
/// ///
/// The default value defined in MSA has high prior than defined in SPD. /// The PCD type defined for module
/// ///
public Object defaultValueInMSA; public Token.PCD_TYPE modulePcdType;
/// ///
/// The default value defined in SPD. /// The arch string of module contains this PCD
/// ///
public Object defaultValueInSPD; public String arch;
/// ///
/// Help text in MSA /// The version of module contains this PCD
/// ///
public String helpTextInMSA; public String version;
/// ///
/// Help text in SPD /// The module type for this usage instance.
/// ///
public String helpTextInSPD; public MODULE_TYPE moduleType;
///
/// The value of the PCD in this usage instance.
///
public Object datum;
/// ///
/// Autogen string for header file. /// Autogen string for header file.
/// ///
@ -83,367 +84,265 @@ public class UsageInstance {
public String cAutogenStr; public String cAutogenStr;
/** /**
Constructure function Constructure function
@param parentToken Member variable. @param parentToken Member variable.
@param usage Member variable. @param pcdType Member variable.
@param pcdType Member variable. @param moduleName Member variable.
@param componentType Member variable. @param moduleGUID Member variable.
@param defaultValueInMSA Member variable. @param packageName Member variable.
@param defaultValueInSPD Member variable. @param packageGUID Member variable.
@param helpTextInMSA Member variable. @param moduleType Member variable.
@param helpTextInSPD Member variable. @param modulePcdType Member variable.
@param moduleName Member variable. @param arch Member variable.
@param packageName Member variable. @param version Member variable.
@param isInherit Member variable. @param value Member variable.
**/ **/
public UsageInstance( public UsageInstance (Token parentToken,
Token parentToken, Token.PCD_TYPE pcdType,
Token.PCD_USAGE usage, String moduleName,
Token.PCD_TYPE pcdType, UUID moduleGUID,
int componentType, String packageName,
Object defaultValueInMSA, UUID packageGUID,
Object defaultValueInSPD, MODULE_TYPE moduleType,
String helpTextInMSA, Token.PCD_TYPE modulePcdType,
String helpTextInSPD, String arch,
String moduleName, String version,
String packageName, Object value) {
boolean isInherit this.parentToken = parentToken;
) this.moduleName = moduleName;
{ this.moduleGUID = moduleGUID;
this.parentToken = parentToken; this.packageName = packageName;
this.usage = usage; this.packageGUID = packageGUID;
this.modulePcdType = pcdType; this.moduleType = moduleType;
this.componentType = componentType; this.modulePcdType = modulePcdType;
this.defaultValueInMSA = defaultValueInMSA; this.arch = arch;
this.defaultValueInSPD = defaultValueInSPD; this.version = version;
this.helpTextInMSA = helpTextInMSA; this.datum = value;
this.helpTextInSPD = helpTextInSPD; this.modulePcdType = pcdType;
this.moduleName = moduleName;
this.packageName = packageName;
this.isInherit = isInherit;
} }
/** /**
Generate autogen string for header file and C code file. Get the primary key for usage instance array for every token.
@throws EntityException Fail to generate. @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 { public String getPrimaryKey() {
Object value = null; return UsageInstance.getPrimaryKey(moduleName, moduleGUID, packageName, packageGUID, arch, version);
int tokenNumber = 0; }
/**
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 = ""; hAutogenStr = "";
cAutogenStr = ""; 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", hAutogenStr += String.format("#define _PCD_TOKEN_%s 0x%016x\r\n",
parentToken.cName, tokenNumber); parentToken.cName, parentToken.tokenNumber);
switch(modulePcdType) { switch(modulePcdType) {
case FEATURE_FLAG: case FEATURE_FLAG:
// if(isBuildUsedLibrary) {
// BUGBUG: The judegement of module PCD type and platform PCD type should not be hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
// done here, but in wizard tools, But here is just following something parentToken.cName);
// PcdEmulation driver. hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
// parentToken.GetAutogenDefinedatumTypeString(parentToken.datumType),
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.FEATURE_FLAG.ordinal()) { parentToken.cName,
throw new EntityException( parentToken.cName);
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
);
} else { } else {
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value.toString() hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
); parentToken.cName);
hAutogenStr += String.format( cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n", parentToken.cName,
parentToken.cName parentToken.cName);
); hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
cAutogenStr += String.format( Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
"GLOBAL_REMOVE_IF_UNREFERENCED const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n", parentToken.cName,
parentToken.cName, 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; break;
case FIXED_AT_BUILD: case FIXED_AT_BUILD:
// if(isBuildUsedLibrary) {
// BUGBUG: The judegement of module PCD type and platform PCD type should not be hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
// done here, but in wizard tools, But here is just following something Token.getAutogendatumTypeString(parentToken.datumType),
// PcdEmulation driver. parentToken.cName);
// hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.FIXED_AT_BUILD.ordinal()) { Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
throw new EntityException( parentToken.cName,
String.format( parentToken.cName);
"%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
);
} else { } else {
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value.toString() hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
); Token.getAutogendatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName);
"extern const %s _gPcd_FixedAtBuild_%s;\r\n", cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType), Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName parentToken.cName,
); parentToken.cName);
cAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
"GLOBAL_REMOVE_IF_UNREFERENCED const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n", Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
Token.getAutogendatumTypeString(parentToken.datumType), parentToken.cName,
parentToken.cName, 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; break;
case PATCHABLE_IN_MODULE: case PATCHABLE_IN_MODULE:
// if(isBuildUsedLibrary) {
// BUGBUG: The judegement of module PCD type and platform PCD type should not be hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
// done here, but in wizard tools, But here is just following something Token.getAutogendatumTypeString(parentToken.datumType),
// PcdEmulation driver. parentToken.cName);
// hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
if(parentToken.pcdType.ordinal() > Token.PCD_TYPE.PATCHABLE_IN_MODULE.ordinal()) { Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
throw new EntityException( parentToken.cName,
String.format( parentToken.cName);
"%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
);
} else { } else {
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
); Token.getAutogendatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName);
"extern %s _gPcd_BinaryPatch_%s;\r\n", cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType), Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName parentToken.cName,
); parentToken.cName);
cAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
"GLOBAL_REMOVE_IF_UNREFERENCED %s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;\r\n", Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
Token.getAutogendatumTypeString(parentToken.datumType), parentToken.cName,
parentToken.cName, 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; break;
case DYNAMIC: 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) { switch(parentToken.pcdType) {
case FEATURE_FLAG: case FEATURE_FLAG:
if(CommonDefinition.isLibraryComponent(componentType)) { if(isBuildUsedLibrary) {
hAutogenStr += String.format( hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n", parentToken.cName);
parentToken.cName hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
); Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName,
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n", parentToken.cName);
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
} else { } else {
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value hAutogenStr += String.format("extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n",
); parentToken.cName);
hAutogenStr += String.format( cAutogenStr += String.format("const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
"extern const BOOLEAN _gPcd_FixedAtBuild_%s;\r\n", parentToken.cName,
parentToken.cName parentToken.cName);
); hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
cAutogenStr += String.format( Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
"const BOOLEAN _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n", parentToken.cName,
parentToken.cName, 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; break;
case FIXED_AT_BUILD: case FIXED_AT_BUILD:
if(CommonDefinition.isLibraryComponent(componentType)) { if(isBuildUsedLibrary) {
hAutogenStr += String.format( hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s;\r\n",
"extern const %s _gPcd_FixedAtBuild_%s;\r\n", Token.getAutogendatumTypeString(parentToken.datumType),
Token.getAutogendatumTypeString(parentToken.datumType), parentToken.cName);
parentToken.cName hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n",
); Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName,
"#define _PCD_MODE_%s_%s _gPcd_FixedAtBuild_%s\r\n", parentToken.cName);
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
parentToken.cName
);
} else { } else {
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value hAutogenStr += String.format("extern const %s _gPcd_FixedAtBuild_%s\r\n",
); Token.getAutogendatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName);
"extern const %s _gPcd_FixedAtBuild_%s\r\n", cAutogenStr += String.format("const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n",
Token.getAutogendatumTypeString(parentToken.datumType), Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName parentToken.cName,
); parentToken.cName);
cAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_MODE_%s_%s _PCD_VALUE_%s\r\n",
"const %s _gPcd_FixedAtBuild_%s = _PCD_VALUE_%s;\r\n", Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
Token.GetAutogenDefinedatumTypeString(parentToken.datumType), parentToken.cName,
parentToken.cName, 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; break;
case PATCHABLE_IN_MODULE: case PATCHABLE_IN_MODULE:
hAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_VALUE_%s %s\r\n",
"#define _PCD_VALUE_%s %s\r\n", parentToken.cName,
parentToken.cName, datum.toString());
value hAutogenStr += String.format("extern %s _gPcd_BinaryPatch_%s;\r\n",
); Token.getAutogendatumTypeString(parentToken.datumType),
hAutogenStr += String.format( parentToken.cName,
"extern %s _gPcd_BinaryPatch_%s;\r\n", parentToken.cName);
Token.getAutogendatumTypeString(parentToken.datumType), cAutogenStr += String.format("%s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;",
parentToken.cName, Token.getAutogendatumTypeString(parentToken.datumType),
parentToken.cName parentToken.cName,
); parentToken.cName);
cAutogenStr += String.format( hAutogenStr += String.format("#define _PCD_MODE_%s_%s _gPcd_BinaryPatch_%s\r\n",
"%s _gPcd_BinaryPatch_%s = _PCD_VALUE_%s;", Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
Token.getAutogendatumTypeString(parentToken.datumType), parentToken.cName,
parentToken.cName, 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; break;
case DYNAMIC: case DYNAMIC:
hAutogenStr += "\r\n"; hAutogenStr += String.format("#define _PCD_MODE_%s_%s LibPcdGet%s(_PCD_TOKEN_%s)\r\n",
hAutogenStr += String.format( Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
"#define _PCD_MODE_%s_%s LibPcdGet%s(_PCD_TOKEN_%s)\r\n", parentToken.cName,
Token.GetAutogenDefinedatumTypeString(parentToken.datumType), Token.getAutogenLibrarydatumTypeString(parentToken.datumType),
parentToken.cName, parentToken.cName);
Token.getAutogenLibrarydatumTypeString(parentToken.datumType),
parentToken.cName
);
break; break;
default: default:
ActionMessage.log( throw new EntityException ("The PCD type is unknown");
this,
"The PCD_TYPE setted by platform is unknown"
);
} }
break; break;
case DYNAMIC_EX: case DYNAMIC_EX:

View File

@ -26,6 +26,6 @@ public class EntityException extends Exception {
@param expStr exception message string. @param expStr exception message string.
**/ **/
public EntityException(String expStr) { 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.*;
import java.awt.event.*; import java.awt.event.*;
import java.util.Map;
import javax.swing.*; import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode;
@ -82,7 +83,7 @@ public class PCDDatabaseFrame extends JFrame {
public JTree initializeTree() { public JTree initializeTree() {
Token[] tokenArray = null; Token[] tokenArray = null;
Token token = null; Token token = null;
DefaultMutableTreeNode root = new DefaultMutableTreeNode(dbManager.getLogFileName()); DefaultMutableTreeNode root = new DefaultMutableTreeNode("PCDTreeRoot");
DefaultMutableTreeNode rootByPCD = new DefaultMutableTreeNode("By PCD"); DefaultMutableTreeNode rootByPCD = new DefaultMutableTreeNode("By PCD");
DefaultMutableTreeNode rootByModule = new DefaultMutableTreeNode("By Module"); DefaultMutableTreeNode rootByModule = new DefaultMutableTreeNode("By Module");
DefaultMutableTreeNode tokenNode = null; DefaultMutableTreeNode tokenNode = null;
@ -92,6 +93,7 @@ public class PCDDatabaseFrame extends JFrame {
int index = 0; int index = 0;
int usageIndex = 0; int usageIndex = 0;
int moduleIndex = 0; int moduleIndex = 0;
Object[] objectArray = null;
java.util.List<UsageInstance> usageArray = null; java.util.List<UsageInstance> usageArray = null;
UsageInstance usageInstance = null; UsageInstance usageInstance = null;
@ -106,17 +108,14 @@ public class PCDDatabaseFrame extends JFrame {
ActionMessage.debug(this, token.cName); ActionMessage.debug(this, token.cName);
tokenNode = new DefaultMutableTreeNode(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("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("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("PCD TYPE: " + Token.getStringOfpcdType(token.pcdType)));
tokenNode.add(new DefaultMutableTreeNode("DATUM TYPE: " +Token.getStringOfdatumType(token.datumType))); tokenNode.add(new DefaultMutableTreeNode("DATUM TYPE: " +Token.getStringOfdatumType(token.datumType)));
tokenNode.add(new DefaultMutableTreeNode("DATUM: " + token.datum.toString())); tokenNode.add(new DefaultMutableTreeNode("DATUM: " + token.datum.toString()));
tokenNode.add(new DefaultMutableTreeNode("HIIENABLE: " +(token.hiiEnabled?"true":"false"))); tokenNode.add(new DefaultMutableTreeNode("HIIENABLE: " +(token.hiiEnabled?"true":"false")));
tokenNode.add(new DefaultMutableTreeNode("VARIABLE NAME: " + token.variableName)); 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("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("SKUID: %d", token.skuId)));
tokenNode.add(new DefaultMutableTreeNode(String.format("MAX SKU COUNT: %d", token.maxSkuCount))); tokenNode.add(new DefaultMutableTreeNode(String.format("MAX SKU COUNT: %d", token.maxSkuCount)));
tokenNode.add(new DefaultMutableTreeNode("VPDENABLE: " +(token.vpdEnabled?"true":"false"))); tokenNode.add(new DefaultMutableTreeNode("VPDENABLE: " +(token.vpdEnabled?"true":"false")));
@ -124,22 +123,16 @@ public class PCDDatabaseFrame extends JFrame {
usageNode = new DefaultMutableTreeNode("PRODUCER"); usageNode = new DefaultMutableTreeNode("PRODUCER");
tokenNode.add(usageNode); 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 // Prepare consumer's leaf node
// //
usageNode = new DefaultMutableTreeNode("CONSUMER"); usageNode = new DefaultMutableTreeNode("CONSUMER");
tokenNode.add(usageNode); tokenNode.add(usageNode);
objectArray = token.consumers.entrySet().toArray();
for (usageIndex = 0; usageIndex < token.consumers.size(); usageIndex ++) { 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); rootByPCD.add(tokenNode);
@ -155,14 +148,11 @@ public class PCDDatabaseFrame extends JFrame {
} }
for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) { for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {
moduleNode = new DefaultMutableTreeNode(moduleNames.get(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 ++) { for (usageIndex = 0; usageIndex < usageArray.size(); usageIndex ++) {
usageInstance = usageArray.get(usageIndex); usageInstance = usageArray.get(usageIndex);
usageNode = new DefaultMutableTreeNode(usageInstance.parentToken.cName); usageNode = new DefaultMutableTreeNode(usageInstance.parentToken.cName);
usageNode.add(new DefaultMutableTreeNode("MODULE PCD TYPE: " + Token.getStringOfpcdType(usageInstance.modulePcdType))); 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); moduleNode.add(usageNode);
} }
rootByModule.add(moduleNode); rootByModule.add(moduleNode);