Use the address of guid array as parameter directly for _PCD_MODE_xx macro for DynamicEx type PCD.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@582 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2006-06-21 03:36:00 +00:00
parent 8aeaf59524
commit a49b34c00e
2 changed files with 16 additions and 20 deletions

View File

@ -339,7 +339,7 @@ public class PCDAutoGenAction extends BuildAction {
(guidStringArray[4].substring(6, 8)), (guidStringArray[4].substring(6, 8)),
(guidStringArray[4].substring(8, 10)), (guidStringArray[4].substring(8, 10)),
(guidStringArray[4].substring(10, 12))); (guidStringArray[4].substring(10, 12)));
if (!isBuildUsedLibrary) {
Pattern pattern = Pattern.compile("(" + guidStringCName + ")+?"); Pattern pattern = Pattern.compile("(" + guidStringCName + ")+?");
Matcher matcher = pattern.matcher(cAutoGenString + " "); Matcher matcher = pattern.matcher(cAutoGenString + " ");
// //
@ -348,6 +348,9 @@ public class PCDAutoGenAction extends BuildAction {
// guid array should be only generated once. // guid array should be only generated once.
// //
if (!matcher.find()) { if (!matcher.find()) {
hAutoGenString += String.format("extern EFI_GUID %s;\r\n",
guidStringCName);
if (!isBuildUsedLibrary) {
cAutoGenString += String.format("GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID %s = %s;\r\n", cAutoGenString += String.format("GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID %s = %s;\r\n",
guidStringCName, guidStringCName,
guidString); guidString);

View File

@ -340,20 +340,13 @@ public class UsageInstance {
guidStringCName = "_gPcd_TokenSpaceGuid_" + guidStringCName = "_gPcd_TokenSpaceGuid_" +
parentToken.tokenSpaceName.toString().replaceAll("-", "_"); parentToken.tokenSpaceName.toString().replaceAll("-", "_");
hAutogenStr += String.format("extern const EFI_GUID *_gPcd_DynamicEx_TokenSpaceGuid_%s;\r\n", hAutogenStr += String.format("#define _PCD_MODE_%s_%s LibPcdGetEx%s(&%s, _PCD_TOKEN_%s)\r\n",
parentToken.cName);
hAutogenStr += String.format("#define _PCD_MODE_%s_%s LibPcdGetEx%s(_gPcd_DynamicEx_TokenSpaceGuid_%s, _PCD_TOKEN_%s)\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType), Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName, parentToken.cName,
Token.getAutogenLibrarydatumTypeString(parentToken.datumType), Token.getAutogenLibrarydatumTypeString(parentToken.datumType),
parentToken.cName, guidStringCName,
parentToken.cName); parentToken.cName);
if (!isBuildUsedLibrary) {
cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED const EFI_GUID *_gPcd_DynamicEx_TokenSpaceGuid_%s = &%s;\r\n",
parentToken.cName,
guidStringCName);
}
break; break;
} }
} }