summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2006-08-24 17:04:56 +0000
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2006-08-24 17:04:56 +0000
commit7085597507e62932b823a97a590dd05f2716f82e (patch)
tree6c15fc6b068292049baceddd0c179ec533209acb
parent82810f3b0f9ba49ed2d9f96c5b53e90dd7e66d88 (diff)
downloadedk2-7085597507e62932b823a97a590dd05f2716f82e.zip
edk2-7085597507e62932b823a97a590dd05f2716f82e.tar.gz
edk2-7085597507e62932b823a97a590dd05f2716f82e.tar.bz2
Fix track EDKT106 & EDKT112: map LibPcdSetPtr function for PatchPcdSetPtr macro function defined in PcdLib library class
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1381 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdePkg/Include/Library/PcdLib.h7
-rw-r--r--Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java11
2 files changed, 15 insertions, 3 deletions
diff --git a/MdePkg/Include/Library/PcdLib.h b/MdePkg/Include/Library/PcdLib.h
index a020104..038443b 100644
--- a/MdePkg/Include/Library/PcdLib.h
+++ b/MdePkg/Include/Library/PcdLib.h
@@ -58,7 +58,12 @@ Module Name: PcdLib.h
#define PatchPcdSet64(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
#define PatchPcdSetBool(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
#define PatchPcdSetPtr(TokenName, Size, Buffer) \
- CopyMem (_gPcd_BinaryPatch_##TokenName, (Buffer), (Size))
+ LibPatchPcdSetPtr ( \
+ _gPcd_BinaryPatch_##TokenName, \
+ (UINTN)_PCD_PATCHABLE_##TokenName##_SIZE, \
+ (Size), \
+ (Buffer) \
+ )
//
// Dynamic is via the protocol with only the TokenNumber as argument
diff --git a/Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java b/Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java
index e38bc91..03499e6 100644
--- a/Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java
+++ b/Tools/Source/PcdTools/org/tianocore/pcd/entity/UsageInstance.java
@@ -368,9 +368,15 @@ public class UsageInstance {
// Example autogen string for following generation:
// "#define _PCD_SET_MODE_8_PcdSampleToken(SizeOfBuffer, Buffer) CopyMem (_gPcd_BinaryPatch_PcdSampleToken, (Buffer), (SizeOfBuffer))"
//
- hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer) CopyMem (_gPcd_BinaryPatch_%s, (Buffer), (SizeOfBuffer))\r\n",
+ hAutogenStr += String.format("#define _PCD_PATCHABLE_%s_SIZE %d\r\n",
+ parentToken.cName,
+ parentToken.datumSize);
+ hAutogenStr += String.format("#define _PCD_SET_MODE_%s_%s(SizeOfBuffer, Buffer) "+
+ "LibPatchPcdSetPtr (_gPcd_BinaryPatch_%s, (UINTN)_PCD_PATCHABLE_%s_SIZE, "+
+ "(SizeOfBuffer), (Buffer))\r\n",
Token.GetAutogenDefinedatumTypeString(parentToken.datumType),
parentToken.cName,
+ parentToken.cName,
parentToken.cName);
} else {
//
@@ -396,8 +402,9 @@ public class UsageInstance {
// Example autogen string for following generation:
// "GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_PcdSampleToken[] = _PCD_VALUE_PcdSampleToken;"
//
- cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_%s[] = _PCD_VALUE_%s;\r\n",
+ cAutogenStr += String.format("GLOBAL_REMOVE_IF_UNREFERENCED UINT8 _gPcd_BinaryPatch_%s[%d] = _PCD_VALUE_%s;\r\n",
parentToken.cName,
+ parentToken.datumSize,
parentToken.cName);
} else {
//