Revision: 18268
          http://sourceforge.net/p/edk2/code/18268
Author:   lgao4
Date:     2015-08-24 05:00:32 +0000 (Mon, 24 Aug 2015)
Log Message:
-----------
MdePkg: Add four PcdGetSize() API in PcdLib

Add below four PcdGetSize() API in PcdLib header file. They can be used
to get the size of PCD value.
FixedPcdGetSize()
PatchPcdGetSize()
PcdGetSize()
PcdGetExSize()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <[email protected]>
Reviewed-by: Star Zeng <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdePkg/Include/Library/PcdLib.h

Modified: trunk/edk2/MdePkg/Include/Library/PcdLib.h
===================================================================
--- trunk/edk2/MdePkg/Include/Library/PcdLib.h  2015-08-24 05:00:05 UTC (rev 
18267)
+++ trunk/edk2/MdePkg/Include/Library/PcdLib.h  2015-08-24 05:00:32 UTC (rev 
18268)
@@ -348,7 +348,6 @@
                                               (Size),                          
        \
                                               (Buffer)                         
        \
                                               )
-
 /**
   Retrieves an 8-bit PCD token value based on a token name.
   
@@ -433,6 +432,63 @@
 #define PcdGetBool(TokenName)               _PCD_GET_MODE_BOOL_##TokenName
 
 
+/**
+  Retrieves the size of a fixed PCD token based on a token name.
+
+  Returns the size of the token specified by TokenName.
+  If TokenName is not a valid token in the token space, then the module will 
not build.
+
+  @param[in]  TokenName  The name of the PCD token to retrieve a current value 
size for.
+
+  @return     Return the size
+
+**/
+#define FixedPcdGetSize(TokenName)    _PCD_SIZE_##TokenName
+
+
+/**
+  Retrieves the size of a binary patchable PCD token based on a token name.
+
+  Returns the size of the token specified by TokenName.
+  If TokenName is not a valid token in the token space, then the module will 
not build.
+
+  @param[in]  TokenName  The name of the PCD token to retrieve a current value 
size for.
+
+  @return     Return the size
+
+**/
+#define PatchPcdGetSize(TokenName)    _gPcd_BinaryPatch_Size_##TokenName
+
+
+/**
+  Retrieves the size of the PCD token based on a token name.
+  
+  Returns the size of the token specified by TokenName.
+  If TokenName is not a valid token in the token space, then the module will 
not build.
+  
+  @param[in]   TokenName  The name of the PCD token to retrieve a current 
value size for.
+
+  @return      Return the size
+
+**/
+#define PcdGetSize(TokenName)         _PCD_GET_MODE_SIZE_##TokenName
+
+
+/**
+  Retrieve the size of a given PCD token.
+  
+  Returns the size of the token specified by TokenNumber and Guid. 
+  If Guid is NULL, then ASSERT(). 
+
+  @param[in]  Guid          Pointer to a 128-bit unique value that designates 
+                            which namespace to retrieve a value from.
+  @param[in]  TokenNumber   The PCD token number to retrieve a current value 
size for.
+
+  @return     Return the size.
+
+**/
+#define PcdGetExSize(Guid, TokenName) LibPcdGetExSize ((Guid), 
PcdTokenEx(Guid,TokenName))
+
 #ifndef DISABLE_NEW_DEPRECATED_INTERFACES
 /**
   Sets an 8-bit PCD token value based on a token name.


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to