]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/PcdLib.h
In before, FixedPcdGetxx macro was defined as global variable, it is wrong. It should...
[mirror_edk2.git] / MdePkg / Include / Library / PcdLib.h
index 631aa4002543b7d15661caff71ee135485a1ec9c..b513a61e86034f327cc15799b7f7628c345b348c 100644 (file)
@@ -18,6 +18,7 @@ Module Name: PcdLib.h
 #ifndef __PCD_LIB_H__\r
 #define __PCD_LIB_H__\r
 \r
+#define PCD_INVALID_TOKEN_NUMBER ((UINTN) -1)\r
 \r
 #define PcdToken(TokenName)  _PCD_TOKEN_##TokenName\r
 \r
@@ -25,23 +26,23 @@ Module Name: PcdLib.h
 //\r
 // Feature Flag is in the form of a global constant\r
 //\r
-#define FeaturePcdGet(TokenName)     _gPcd_FixedAtBuild_##TokenName\r
+#define FeaturePcdGet(TokenName)     _PCD_VALUE_##TokenName\r
 \r
 \r
 //\r
 // Fixed is fixed at build time\r
 //\r
-#define FixedPcdGet8(TokenName)     _gPcd_FixedAtBuild_##TokenName\r
-#define FixedPcdGet16(TokenName)    _gPcd_FixedAtBuild_##TokenName\r
-#define FixedPcdGet32(TokenName)    _gPcd_FixedAtBuild_##TokenName\r
-#define FixedPcdGet64(TokenName)    _gPcd_FixedAtBuild_##TokenName\r
-#define FixedPcdGetBool(TokenName)  _gPcd_FixedAtBuild_##TokenName\r
+#define FixedPcdGet8(TokenName)     _PCD_VALUE_##TokenName\r
+#define FixedPcdGet16(TokenName)    _PCD_VALUE_##TokenName\r
+#define FixedPcdGet32(TokenName)    _PCD_VALUE_##TokenName\r
+#define FixedPcdGet64(TokenName)    _PCD_VALUE_##TokenName\r
+#define FixedPcdGetBool(TokenName)  _PCD_VALUE_##TokenName\r
 \r
 \r
 //\r
 // BugBug: This works for strings, but not constants.\r
 //\r
-#define FixedPcdGetPtr(TokenName)    ((VOID *)_gPcd_FixedAtBuild_##TokenName)\r
+#define FixedPcdGetPtr(TokenName)    ((VOID *)_PCD_VALUE_##TokenName)\r
 \r
 \r
 //\r
@@ -54,6 +55,12 @@ Module Name: PcdLib.h
 #define PatchPcdGetBool(TokenName)  _gPcd_BinaryPatch_##TokenName\r
 #define PatchPcdGetPtr(TokenName)   ((VOID *)_gPcd_BinaryPatch_##TokenName)\r
 \r
+#define PatchPcdSet8(TokenName, Value)     (_gPcd_BinaryPatch_##TokenName = Value)\r
+#define PatchPcdSet16(TokenName, Value)    (_gPcd_BinaryPatch_##TokenName = Value)\r
+#define PatchPcdSet32(TokenName, Value)    (_gPcd_BinaryPatch_##TokenName = Value)\r
+#define PatchPcdSet64(TokenName, Value)    (_gPcd_BinaryPatch_##TokenName = Value)\r
+#define PatchPcdSetBool(TokenName, Value)  (_gPcd_BinaryPatch_##TokenName = Value)\r
+#define PatchPcdSetPtr(TokenName, Size, Buffer)   CopyMem (_gPcd_BinaryPatch_##TokenName, Buffer, Size)\r
 \r
 //\r
 // Dynamic is via the protocol with only the TokenNumber as argument\r
@@ -85,7 +92,7 @@ Module Name: PcdLib.h
 #define PcdSet16(TokenName, Value)      LibPcdSet16  (_PCD_TOKEN_##TokenName, Value)\r
 #define PcdSet32(TokenName, Value)      LibPcdSet32  (_PCD_TOKEN_##TokenName, Value)\r
 #define PcdSet64(TokenName, Value)      LibPcdSet64  (_PCD_TOKEN_##TokenName, Value)\r
-#define PcdSetPtr(TokenName, Value)     LibPcdSetPtr (_PCD_TOKEN_##TokenName, Value)\r
+#define PcdSetPtr(TokenName, SizeOfBuffer, Buffer)     LibPcdSetPtr (_PCD_TOKEN_##TokenName, SizeOfBuffer, Buffer)\r
 #define PcdSetBool(TokenName, Value)    LibPcdSetBool(_PCD_TOKEN_##TokenName, Value)\r
 \r
 \r
@@ -96,7 +103,7 @@ Module Name: PcdLib.h
 #define PcdSetEx16(Guid, TokenName, Value)     LibPcdSetEx16  (Guid, _PCD_TOKEN_##TokenName, Value)\r
 #define PcdSetEx32(Guid, TokenName, Value)     LibPcdSetEx32  (Guid, _PCD_TOKEN_##TokenName, Value)\r
 #define PcdSetEx64(Guid, TokenName, Value)     LibPcdSetEx64  (Guid, _PCD_TOKEN_##TokenName, Value)\r
-#define PcdSetExPtr(Guid, TokenName, Value)    LibPcdSetExPtr (Guid, _PCD_TOKEN_##TokenName, Value)\r
+#define PcdSetExPtr(Guid, TokenName, SizeOfBuffer, Buffer)    LibPcdSetExPtr (Guid, _PCD_TOKEN_##TokenName, SizeOfBuffer, Buffer)\r
 #define PcdSetExBool(Guid, TokenName, Value)   LibPcdSetExBool(Guid, _PCD_TOKEN_##TokenName, Value)\r
 \r
 \r
@@ -106,7 +113,7 @@ Module Name: PcdLib.h
   @param[in]  SkuId The SKU value that will be used when the PCD service will retrieve and \r
               set values associated with a PCD token.\r
 \r
-  @retval UINTN Return the SKU ID that just be set.\r
+  @retval SKU_ID Return the SKU ID that just be set.\r
 \r
 **/\r
 UINTN\r
@@ -127,7 +134,7 @@ LibPcdSetSku (
 UINT8\r
 EFIAPI\r
 LibPcdGet8 (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -142,7 +149,7 @@ LibPcdGet8 (
 UINT16\r
 EFIAPI\r
 LibPcdGet16 (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -157,7 +164,7 @@ LibPcdGet16 (
 UINT32\r
 EFIAPI\r
 LibPcdGet32 (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -172,7 +179,7 @@ LibPcdGet32 (
 UINT64\r
 EFIAPI\r
 LibPcdGet64 (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -187,7 +194,7 @@ LibPcdGet64 (
 VOID *\r
 EFIAPI\r
 LibPcdGetPtr (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -202,7 +209,7 @@ LibPcdGetPtr (
 BOOLEAN \r
 EFIAPI\r
 LibPcdGetBool (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -217,7 +224,7 @@ LibPcdGetBool (
 UINTN\r
 EFIAPI\r
 LibPcdGetSize (\r
-  IN UINTN  TokenNumber\r
+  IN UINTN             TokenNumber\r
   );\r
 \r
 \r
@@ -441,7 +448,8 @@ VOID*
 EFIAPI\r
 LibPcdSetPtr (\r
   IN UINTN             TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Value\r
   );\r
 \r
 \r
@@ -570,7 +578,8 @@ EFIAPI
 LibPcdSetExPtr (\r
   IN CONST GUID        *Guid,\r
   IN UINTN             TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Value\r
   );\r
 \r
 \r
@@ -613,10 +622,10 @@ LibPcdSetExBool (
 typedef\r
 VOID\r
 (EFIAPI *PCD_CALLBACK) (\r
-  IN  CONST GUID   *CallBackGuid, OPTIONAL\r
-  IN  UINTN        CallBackToken,\r
-  IN  VOID         *TokenData,\r
-  IN  UINTN        TokenDataSize\r
+  IN        CONST GUID        *CallBackGuid, OPTIONAL\r
+  IN        UINTN             CallBackToken,\r
+  IN  OUT   VOID              *TokenData,\r
+  IN        UINTN             TokenDataSize\r
   );\r
 \r
 \r
@@ -677,14 +686,14 @@ LibPcdCancelCallback (
   @param[in]  The previous PCD token number.  If 0, then retrieves the first PCD \r
               token number.\r
 \r
-  @retval UINTN The next valid token number.\r
+  @retval UINTN            The next valid token number.\r
 \r
 **/\r
-UINTN\r
+UINTN           \r
 EFIAPI\r
 LibPcdGetNextToken (\r
   IN CONST GUID               *Guid,       OPTIONAL\r
-  IN UINTN                    *TokenNumber\r
+  IN UINTN                    TokenNumber\r
   );\r
 \r
 #endif\r