**/\r
package org.tianocore.build.autogen;\r
\r
+import java.util.HashSet;\r
+import java.util.Iterator;\r
+import java.util.LinkedHashSet;\r
+import java.util.Set;\r
+\r
/**\r
CommonDefinition\r
\r
public final static String autoGenHReleaseDefault = "#define EDK_RELEASE_VERSION 0x00000000\r\n";\r
\r
public final static String includeAutogenH = "#include <AutoGen.h>\r\n" ;\r
+ public final static String marcDefineStr = "#define ";\r
\r
public final static String gEfi = "gEfi";\r
public final static String protocolGuid = "ProtocolGuid";\r
public final static String ppiGuid = "PpiGuid";\r
public final static String guidGuid = "Guid";\r
+\r
+ public final static String tianoR8FlashMapH = "TianoR8FlashMap.h";\r
+ public final static String flashMapH = "FlashMap.h";\r
\r
//\r
// AutoGen.h and AutoGen.c file's header\r
new MyEnum("PEI_CORE", ModuleTypePeiCore),\r
new MyEnum("PEIM", ModuleTypePeim),\r
new MyEnum("DXE_CORE", ModuleTypeDxeCore),\r
- new MyEnum("DXE_DRIVER", ModuleTypeDxeRuntimeDriver),\r
+ new MyEnum("DXE_DRIVER", ModuleTypeDxeDriver),\r
new MyEnum("DXE_RUNTIME_DRIVER", ModuleTypeDxeRuntimeDriver),\r
- new MyEnum("DXE_SAL_DRIVER", ModuleTypeDxeSmmDriver),\r
- new MyEnum("DXE_SMM_DRIVER", ModuleTypeDxeSalDriver),\r
+ new MyEnum("DXE_SAL_DRIVER", ModuleTypeDxeSalDriver),\r
+ new MyEnum("DXE_SMM_DRIVER", ModuleTypeDxeSmmDriver),\r
new MyEnum("UEFI_DRIVER", ModuleTypeUefiDriver),\r
new MyEnum("UEFI_APPLICATION", ModuleTypeUefiApplication) };\r
\r
}\r
return false;\r
}\r
-}
\ No newline at end of file
+ \r
+ /**\r
+ * formateGuidName\r
+ * \r
+ * This function is to formate GUID to ANSI c form.\r
+ * \r
+ * @param guidNameCon\r
+ * String of GUID.\r
+ * @return Formated GUID.\r
+ */\r
+ public static String formatGuidName(String guidNameConv) {\r
+ String[] strList;\r
+ String guid = "";\r
+ int index = 0;\r
+ if (guidNameConv\r
+ .matches("[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}")) {\r
+ strList = guidNameConv.split("-");\r
+ guid = "0x" + strList[0] + ", ";\r
+ guid = guid + "0x" + strList[1] + ", ";\r
+ guid = guid + "0x" + strList[2] + ", ";\r
+ guid = guid + "{";\r
+ guid = guid + "0x" + strList[3].substring(0, 2) + ", ";\r
+ guid = guid + "0x" + strList[3].substring(2, 4);\r
+\r
+ while (index < strList[4].length()) {\r
+ guid = guid + ", ";\r
+ guid = guid + "0x" + strList[4].substring(index, index + 2);\r
+ index = index + 2;\r
+ }\r
+ guid = guid + "}";\r
+ return guid;\r
+ } else if (guidNameConv\r
+ .matches("0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\\})?")) {\r
+ strList = guidNameConv.split(",");\r
+\r
+ //\r
+ // chang Microsoft specific form to ANSI c form\r
+ //\r
+ for (int i = 0; i < 3; i++) {\r
+ guid = guid + strList[i] + ",";\r
+ }\r
+ guid = guid + "{";\r
+\r
+ for (int i = 3; i < strList.length; i++) {\r
+ if (i == strList.length - 1) {\r
+ guid = guid + strList[i];\r
+ } else {\r
+ guid = guid + strList[i] + ",";\r
+ }\r
+ }\r
+ guid = guid + "}";\r
+ return guid;\r
+ } else {\r
+ System.out\r
+ .println("Check GUID Value, It doesn't conform to the registry format specified in the schema!!!");\r
+ return "0";\r
+\r
+ }\r
+ }\r
+ \r
+ /**\r
+ * Remove deuplicat string in list\r
+ * \r
+ * This function is to duplicat string in list\r
+ * \r
+ * @param String[]\r
+ * String list.\r
+ * @return String[] String list which remove the duplicate string.\r
+ */\r
+ public static String[] remDupString (String[] orgList){\r
+ Set<String> strList = new LinkedHashSet<String>();\r
+ String[] desList ;\r
+ if (orgList == null){\r
+ return new String[0];\r
+ }\r
+ for (int i = 0; i < orgList.length; i++){\r
+ strList.add(orgList[i]);\r
+ }\r
+ desList = new String[strList.size()];\r
+ Iterator item = strList.iterator();\r
+ int index = 0;\r
+ while (item.hasNext()){\r
+ desList[index] = (String)item.next();\r
+ index++;\r
+ }\r
+ return desList;\r
+ }\r
+ \r
+}\r