Modify FrameworkModules editor for FPD files to meet the new PCD type adjust operatio...
authorjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 2 Nov 2006 11:04:27 +0000 (11:04 +0000)
committerjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 2 Nov 2006 11:04:27 +0000 (11:04 +0000)
commite4f1ff6cf9c37627f59d099d650e2c3972f9ecaa
tree036606037ce6c423eadd855965e5a50e30013f0a
parentbd2368959084d675d48672f648ce90caa8c25efc
Modify FrameworkModules editor for FPD files to meet the new PCD type adjust operation rules:

a. Add a module with PCD type Dyn.
If this PCD not exists in platform,
ModuleSA.PcdType is set as Dyn (choose one from spd).
Else
ModuleSA.PcdType is set as existing type ?
(Give a error message if this module pcd can NOT be set as existing type. And Pcd will not be added for this module into platform.)

If PCD type is determined to be Dyn.
Add PCD to DynamicPcdBuildDefinitions if it not exists there.
SkuId = 0;
SkuInfo.value = MSA default | SPD default | give default based on DatumType.
If DatumType == void*
Set ModuleSA.PcdMaxDatumSize;

b. Add a module with PCD type DynEx.
If this PCD not exists in platform,
ModuleSA.PcdType is set as DynEx.
Else
ModuleSA.PcdType is set as existing type ?
(Give a error message if this module pcd can NOT be set as existing type. And Pcd will not be added for this module into platform.)

Add PCD to DynamicPcdBuildDefinitions if it not exists there.
SkuId = 0;
SkuInfo.value = MSA default | SPD default | give default based on DatumType.
If DatumType == void*
    Set ModuleSA.PcdMaxDatumSize;

c. Add a module with PCD type FixedAtBuild, PIM, FF
If this PCD not exists in platform,
ModuleSA.PcdType is set as FaB | PIM | FF.
Else
ModuleSA.PcdType is set as existing type ?
(Give a error message if this module pcd can NOT be set as existing type. And Pcd will not be added for this module into platform..)

ModuleSA.PcdValue = MSA default | SPD default | give default based on DatumType.
If DatumType == void*
Set ModuleSA.PcdMaxDatumSize;

d. Edit ModuleSA.PcdType
Get the corresponding MSA.PcdType in MSA file for this ModuleSA.

If MSA.PcdType == Dyn.
ModuleSA.PcdType could be [(valid Pcd types in SPD)]

    Else
ModuleSA.PcdType can NOT be changed.

1) Change ModuleSa.PcdType from Dynamic. to [valid Pcd types in SPD]:
All same PCDs in FrameworkModules are changed to one of valid Pcd types in SPD according to user selection.
Check in whole platform other ModuleSA for the same pcd, if the corresponding MSAes for other ModuleSAes pcd can NOT accept the new type, give error message.

Keep old ModuleSA.PcdValue.
Remove this PCD in DynamicPcdBuildDefintion.

2) Change ModuleSa.PcdType from [FaBor PIM] to Dynamic, DynEx.:
All same PCDs in FrameworkModules are changed to Dynamic | DynEx.
Check in whole platform other ModuleSA for the same pcd, if the corresponding MSAes for other ModuleSAes pcd can NOT accept the new type, give error message.

Keep old ModuleSA.PcdValue?
Add one new dynamic PCD in DynamicPcdBuildDefintion.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1888 6f19259b-4bc3-4df7-8a09-765794883524
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java
Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java