X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FMsaOwner.java;h=44b1dca90777ae632ac6af3f6dc96da0e50cf72f;hp=f63e8e14129cb69a0ea0d838bff282c0c71fa0a2;hb=fd16b4dddd7eadf267c0caac61ba934edb5b8e66;hpb=e8c0c170fa983c73cab1ad6eea7333efbec74ffb diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MsaOwner.java b/Tools/Source/MigrationTools/org/tianocore/migration/MsaOwner.java index f63e8e1412..44b1dca907 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MsaOwner.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MsaOwner.java @@ -1,6 +1,9 @@ package org.tianocore.migration; +import java.util.*; + import org.tianocore.*; +import org.tianocore.SupportedArchitectures.Enum; public class MsaOwner { public static final String COPYRIGHT = "Copyright (c) 2006, Intel Corporation"; @@ -17,21 +20,126 @@ public class MsaOwner { " Intel Corporation."; public static final String SPECIFICATION = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"; + public static final Enum IA32 = SupportedArchitectures.IA_32; + public static final Enum X64 = SupportedArchitectures.X_64; + public static final Enum IPF = SupportedArchitectures.IPF; + public static final Enum EBC = SupportedArchitectures.EBC; + private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance(); private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null; private MsaHeaderDocument.MsaHeader msaheader = null; private LicenseDocument.License license = null; - private ModuleDefinitionsDocument.ModuleDefinitions md = null; + private ModuleDefinitionsDocument.ModuleDefinitions moduledefinitions = null; private SourceFilesDocument.SourceFiles sourcefiles = null; //found local .h files are not written private GuidsDocument.Guids guids = null; private ProtocolsDocument.Protocols protocols = null; private PPIsDocument.PPIs ppis = null; - private PackageDependenciesDocument.PackageDependencies pd = null; + private PackageDependenciesDocument.PackageDependencies packagedependencies = null; private LibraryClassDefinitionsDocument.LibraryClassDefinitions libclassdefs = null; private ExternsDocument.Externs externs = null; + + private List listarch = new ArrayList(); + private Map mapfilenames = new HashMap(); //this need to be installed manually when msa is to be written + private Map mapprotocols = new HashMap(); //-----------------------------msaheader-------------------------------------// + private final boolean installProtocols () { + if (mapprotocols.isEmpty()) { + return false; + } + Set setprotocols = mapprotocols.keySet(); + ProtocolsDocument.Protocols.Protocol protocol; + Iterator it = setprotocols.iterator(); + while (it.hasNext()) { + protocol = protocols.addNewProtocol(); + protocol.setProtocolCName(it.next()); + protocol.setUsage(mapprotocols.get(protocol.getProtocolCName())); + } + return true; + } + + public final boolean addProtocols (String protocol, UsageTypes.Enum usage) { + if (mapprotocols.containsKey(protocol)) { + return false; + } else { + mapprotocols.put(protocol, usage); + return true; + } + } + + private final boolean installHashFilename () { + if (mapfilenames.isEmpty()) { + return false; + } + Set setfilename = mapfilenames.keySet(); + FilenameDocument.Filename filename; + List arch = new ArrayList(); + Iterator it = setfilename.iterator(); + while (it.hasNext()) { + filename = sourcefiles.addNewFilename(); + filename.setStringValue(it.next()); + arch.add(mapfilenames.get(filename.getStringValue())); + filename.setSupArchList(arch); + } + return true; + } + + public final boolean addSourceFile (String filename, Enum arch) { // dummy & null how to imply? + if (mapfilenames.containsKey(filename)) { + return false; + } else { + mapfilenames.put(filename, arch); + return true; + } + } + + // entry point todo + + public final boolean setupExternSpecification () { + addExternSpecification("EFI_SPECIFICATION_VERSION 0x00020000"); + addExternSpecification("EDK_RELEASE_VERSION 0x00020000"); + return true; + } + + public final boolean addExternSpecification (String specification) { + if (externs.getSpecificationList().contains(specification)) { + return false; + } else { + externs.addSpecification(specification); + return true; + } + } + + public final boolean setupPackageDependencies() { + addPackage("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"); + addPackage("68169ab0-d41b-4009-9060-292c253ac43d"); + return true; + } + + public final boolean addPackage (String guid) { + if (packagedependencies.getPackageList().contains(guid)) { + return false; + } else { + packagedependencies.addNewPackage().setPackageGuid(guid); + return true; + } + } + + public final boolean setupModuleDefinitions () { //????????? give this job to moduleinfo + moduledefinitions.setBinaryModule(false); + moduledefinitions.setOutputFileBasename(msaheader.getModuleName()); + return true; + } + public final boolean addSupportedArchitectures (Enum arch) { + if (listarch.contains(arch)) { + return false; + } else { + listarch.add(arch); + return true; + } + } + public final boolean addSpecification (String specification) { if (msaheader.getSpecification() == null) { if (specification == null) { @@ -155,9 +263,11 @@ public class MsaOwner { private final MsaOwner init () { msa = msadoc.addNewModuleSurfaceArea(); msaheader = msa.addNewMsaHeader(); - md = msa.addNewModuleDefinitions(); + moduledefinitions = msa.addNewModuleDefinitions(); + moduledefinitions.setSupportedArchitectures(listarch); + sourcefiles = msa.addNewSourceFiles(); - pd = msa.addNewPackageDependencies(); + packagedependencies = msa.addNewPackageDependencies(); libclassdefs = msa.addNewLibraryClassDefinitions(); externs = msa.addNewExterns(); return this;