merged part of new changes in new schema, and changed genbuild code accordingly

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@643 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jwang36 2006-06-27 14:24:33 +00:00
parent 567df6937d
commit b1d9f2a3cb
3 changed files with 134 additions and 108 deletions

View File

@ -591,8 +591,7 @@ public class AutoGen {
// library class name.
//
for (int i = 0; i < libClassList.length; i++) {
includerName = GlobalData.getLibClassIncluder(libClassList[i]
.getStringValue());
includerName = GlobalData.getLibClassIncluder(getStringValue((XmlObject)libClassList[i]));
if (includerName != null) {
str = CommonDefinition.include + " " + "<";
str = str + includerName + ">\r\n";
@ -1095,14 +1094,14 @@ public class AutoGen {
if (ppiList != null) {
for (int i = 0; i < ppiList.length; i++) {
isEqual = false;
String ppiName = getStringValue((XmlObject)ppiList[i]);
for (int j = 0; j < this.mPpiList.size(); j++) {
if (this.mPpiList.get(j).equalsIgnoreCase(
ppiList[i].getStringValue())) {
if (this.mPpiList.get(j).equalsIgnoreCase(ppiName)) {
isEqual = true;
}
}
if (!isEqual) {
this.mPpiList.add(ppiList[i].getStringValue());
this.mPpiList.add(ppiName);
}
}
}
@ -1112,14 +1111,14 @@ public class AutoGen {
if (ppiNotifyList != null) {
for (int i = 0; i < ppiNotifyList.length; i++) {
isEqual = false;
String ppiNotifyName = getStringValue((XmlObject)ppiNotifyList[i]);
for (int j = 0; j < this.mPpiList.size(); j++) {
if (this.mPpiList.get(j).equalsIgnoreCase(
ppiNotifyList[i].getStringValue())) {
if (this.mPpiList.get(j).equalsIgnoreCase(ppiNotifyName)) {
isEqual = true;
}
}
if (!isEqual) {
this.mPpiList.add(ppiNotifyList[i].getStringValue());
this.mPpiList.add(ppiNotifyName);
}
}
}
@ -1159,14 +1158,14 @@ public class AutoGen {
if (protocolList != null) {
for (int i = 0; i < protocolList.length; i++) {
isEqual = false;
String protocolName = getStringValue((XmlObject)protocolList[i]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
if (this.mProtocolList.get(j).equalsIgnoreCase(
protocolList[i].getStringValue())) {
if (this.mProtocolList.get(j).equalsIgnoreCase(protocolName)) {
isEqual = true;
}
}
if (!isEqual) {
this.mProtocolList.add(protocolList[i].getStringValue());
this.mProtocolList.add(protocolName);
}
}
@ -1177,15 +1176,14 @@ public class AutoGen {
if (protocolNotifyList != null) {
for (int i = 0; i < protocolNotifyList.length; i++) {
isEqual = false;
String protocolNotifyName = getStringValue((XmlObject)protocolNotifyList[i]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
if (this.mProtocolList.get(j).equalsIgnoreCase(
protocolNotifyList[i].getStringValue())) {
if (this.mProtocolList.get(j).equalsIgnoreCase(protocolNotifyName)) {
isEqual = true;
}
}
if (!isEqual) {
this.mProtocolList.add(protocolNotifyList[i]
.getStringValue());
this.mProtocolList.add(protocolNotifyName);
}
}
@ -1330,66 +1328,56 @@ public class AutoGen {
if (ppiList != null) {
for (index = 0; index < ppiList.length; index++) {
isEqual = false;
String name = getStringValue((XmlObject)ppiList[index]);
for (int j = 0; j < this.mPpiList.size(); j++) {
if (this.mPpiList.get(j).equalsIgnoreCase(
ppiList[index].getStringValue())) {
if (this.mPpiList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
this.mPpiList.add(ppiList[index]
.getStringValue());
this.mPpiList.add(name);
}
}
}
if (ppiNotifyList != null) {
for (index = 0; index < ppiNotifyList.length; index++) {
isEqual = false;
String name = getStringValue((XmlObject)ppiNotifyList[index]);
for (int j = 0; j < this.mPpiList.size(); j++) {
if (this.mPpiList.get(j).equalsIgnoreCase(
ppiNotifyList[index]
.getStringValue())) {
if (this.mPpiList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
this.mPpiList.add(ppiNotifyList[index]
.getStringValue());
this.mPpiList.add(name);
}
}
}
if (protocolList != null) {
for (index = 0; index < protocolList.length; index++) {
isEqual = false;
String name = getStringValue((XmlObject)protocolList[index]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
if (this.mProtocolList.get(j)
.equalsIgnoreCase(
protocolList[index]
.getStringValue())) {
if (this.mProtocolList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
this.mProtocolList.add(protocolList[index]
.getStringValue());
this.mProtocolList.add(name);
}
}
}
if (protocolNotifyList != null) {
for (index = 0; index < protocolNotifyList.length; index++) {
isEqual = false;
String name = getStringValue((XmlObject)protocolNotifyList[index]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
if (this.mProtocolList.get(j)
.equalsIgnoreCase(
protocolNotifyList[index]
.getStringValue())) {
if (this.mProtocolList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
this.mProtocolList
.add(protocolNotifyList[index]
.getStringValue());
this.mProtocolList.add(name);
}
}
}
@ -2015,4 +2003,7 @@ public class AutoGen {
}
private String getStringValue(XmlObject xmlDoc) {
return xmlDoc.getDomNode().getFirstChild().getNodeValue();
}
}

View File

@ -20,7 +20,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.xmlbeans.XmlObject;
import org.tianocore.LibraryClassDocument.LibraryClass;
@ -81,7 +80,8 @@ public class AutogenLibOrder {
if (libClassConsmList != null) {
String[] classStr = new String[libClassConsmList.length];
for (int k = 0; k < libClassConsmList.length; k++) {
classStr[k] = libClassConsmList[k].getStringValue();
//classStr[k] = libClassConsmList[k].getStringValue();
classStr[k] = getStringValue((XmlObject)libClassConsmList[k]);
}
if (this.libInstanceMap.containsKey(libInstance[0])) {
throw new Exception(
@ -99,17 +99,17 @@ public class AutogenLibOrder {
.getLibraryClassArray(CommonDefinition.AlwaysProduced);
if (libClassDeclList != null) {
for (int j = 0; j < libClassDeclList.length; j++) {
if (this.libClassMap.containsKey(libClassDeclList[j]
.getStringValue())) {
System.out.println(libClassDeclList[j].getStringValue()
//if (this.libClassMap.containsKey(libClassDeclList[j]
// .getStringValue())) {
String libClassName = getStringValue((XmlObject)libClassDeclList[j]);
if (this.libClassMap.containsKey(libClassName)) {
System.out.println(libClassName
+ " class is already implement by "
+ this.libClassMap.get(libClassDeclList[j]
.getStringValue()));
+ this.libClassMap.get(libClassName));
throw new Exception(libClassDeclList
+ " is already have library instance!");
} else {
this.libClassMap.put(libClassDeclList[j]
.getStringValue(), libInstance[0]);
this.libClassMap.put(libClassName, libInstance[0]);
}
}
}
@ -286,6 +286,10 @@ public class AutogenLibOrder {
}
return false;
}
private String getStringValue(XmlObject xmlDoc) {
return xmlDoc.getDomNode().getFirstChild().getNodeValue();
}
}
/**

View File

@ -76,6 +76,9 @@
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="BootMode">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="BootModeAttributes"/>
</xs:complexType>
</xs:element>
@ -213,12 +216,12 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="DataHubRecord">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="DataHubAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="DataHubAttributes"/>
</xs:complexType>
</xs:element>
<!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->
@ -282,7 +285,16 @@
<xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="Event">
<xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="EventAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Event">
<xs:complexType>
<xs:sequence>
<xs:choice>
@ -328,7 +340,16 @@
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="Event">
<xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="EventAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Event">
<xs:complexType>
<xs:sequence>
<xs:choice>
@ -589,19 +610,19 @@
<xs:element name="Guids">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCName">
<xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="GuidAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="GuidAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="GuidEntry">
</xs:element>
<xs:element minOccurs="0" name="GuidEntry">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
@ -659,12 +680,12 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="HiiPackage">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="HiiPackageAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="HiiPackageAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
@ -673,7 +694,16 @@
<xs:element name="Hobs">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="Hob">
<xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="HobAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Hob">
<xs:complexType>
<xs:sequence>
<xs:choice>
@ -806,12 +836,12 @@
<xs:annotation>
<xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="KeywordType">
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:complexType>
</xs:element>
<!-- LAH This is LibraryClassDeclaration FINAL version -->
@ -860,8 +890,8 @@
<xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="LibraryClass"/>
<xs:sequence>
<xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1417,21 +1447,21 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="PpiAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="PpiAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="PpiNotifyAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="PpiNotifyAttributes"/>
</xs:complexType>
</xs:element>
<!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->
@ -1492,21 +1522,21 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="ProtocolAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolNotifyAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="ProtocolNotifyAttributes"/>
</xs:complexType>
</xs:element>
<!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->
@ -1643,15 +1673,15 @@
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCName">
<xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:extension>
</xs:simpleContent>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
</xs:element>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1705,6 +1735,7 @@
<!-- Make GuidC_Name required -->
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
<!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
<xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
<xs:annotation>