X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FDatabase.java;fp=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FDatabase.java;h=8b088c9cbb2135cad003c583c4d2b2f4d29e33cd;hp=a4b0d47872f374c599e8dc69b8eb2b5e6d167fab;hb=eee63a7bcad36a2100adb951a2f04ff18a415240;hpb=a61513d6f94b0fb4d5498609cbaef60c324858ba diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/Database.java b/Tools/Source/MigrationTools/org/tianocore/migration/Database.java index a4b0d47872..8b088c9cbb 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/Database.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/Database.java @@ -14,6 +14,7 @@ package org.tianocore.migration; import java.io.*; import java.util.*; +import java.util.regex.*; public final class Database { Database(String path) throws Exception { @@ -24,17 +25,19 @@ public final class Database { importDBGuid("Ppi.csv", "Ppi"); importDBGuid("Protocol.csv", "Protocol"); importDBMacro("Macro.csv"); + importListR8Only(); } - public static String defaultpath = "C:" + File.separator + "tianocore" + File.separator + "edk2" + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration"; - public String DatabasePath; public Set error = new HashSet(); + public Set r8only = new HashSet(); private Map hashguid = new HashMap(); private Map hashfunc = new HashMap(); private Map hashmacro = new HashMap(); + //-------------------------------------import------------------------------------------// + private void importDBLib(String filename) throws Exception { BufferedReader rd = new BufferedReader(new FileReader(DatabasePath + File.separator + filename)); String line; @@ -88,7 +91,21 @@ public final class Database { } } } + + private void importListR8Only() throws Exception { + Pattern ptnr8only = Pattern.compile("////#?(\\w*)?.*?R8_(.*?)\\s*\\(.*?////~", Pattern.DOTALL); + String wholeline = Common.file2string(DatabasePath + File.separator + "R8Lib.c"); + System.out.println("Found " + "R8Lib.c" + ", Importing R8Lib Database."); + Matcher mtrr8only = ptnr8only.matcher(wholeline); + while (mtrr8only.find()) { + r8only.add(mtrr8only.group(2)); + } + } + //-------------------------------------import------------------------------------------// + + //-------------------------------------get------------------------------------------// + public String getR9Lib(String r8funcname) { String temp = null; if (hashfunc.containsKey(r8funcname)) { @@ -105,18 +122,6 @@ public final class Database { return temp; } - public boolean hasFunc(String r8lib) { - return hashfunc.containsKey(r8lib); - } - - public boolean hasGuid(String r8guid) { - return hashguid.containsKey(r8guid); - } - - public boolean hasMacro(String r8macro) { - return hashmacro.containsKey(r8macro); - } - public String getR9Macro(String r8macro) { return hashmacro.get(r8macro).r9name; // the verification job of if the macro exists in the database is done when registering it } @@ -141,6 +146,26 @@ public final class Database { return temp; } + //-------------------------------------get------------------------------------------// + + //-------------------------------------has------------------------------------------// + + public boolean hasFunc(String r8lib) { + return hashfunc.containsKey(r8lib); + } + + public boolean hasGuid(String r8guid) { + return hashguid.containsKey(r8guid); + } + + public boolean hasMacro(String r8macro) { + return hashmacro.containsKey(r8macro); + } + + //-------------------------------------has------------------------------------------// + + //-------------------------------------init------------------------------------------// + public static Database init() throws Exception { if (System.getenv("WORKSPACE") == null) { return new Database("C:" + File.separator + "tianocore" + File.separator + "edk2" + File.separator + "Tools" + File.separator + "Conf" + File.separator + "Migration");