+#endif\r
+\r
+/**\r
+ Sets a 8-bit PCD token value based on a token name.\r
+\r
+ Sets the 8-bit value for the token specified by TokenName.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ @param TokenName The name of the PCD token to retrieve a current value for.\r
+ @param Value The 8-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSet8S(TokenName, Value) _PCD_SET_MODE_8_S_##TokenName ((Value))\r
+\r
+/**\r
+ Sets a 16-bit PCD token value based on a token name.\r
+\r
+ Sets the 16-bit value for the token specified by TokenName.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ @param TokenName The name of the PCD token to retrieve a current value for.\r
+ @param Value The 16-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSet16S(TokenName, Value) _PCD_SET_MODE_16_S_##TokenName ((Value))\r
+\r
+/**\r
+ Sets a 32-bit PCD token value based on a token name.\r
+\r
+ Sets the 32-bit value for the token specified by TokenName.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ @param TokenName The name of the PCD token to retrieve a current value for.\r
+ @param Value The 32-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSet32S(TokenName, Value) _PCD_SET_MODE_32_S_##TokenName ((Value))\r
+\r
+/**\r
+ Sets a 64-bit PCD token value based on a token name.\r
+\r
+ Sets the 64-bit value for the token specified by TokenName.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ @param TokenName The name of the PCD token to retrieve a current value for.\r
+ @param Value The 64-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSet64S(TokenName, Value) _PCD_SET_MODE_64_S_##TokenName ((Value))\r
+\r
+/**\r
+ Sets a pointer to a PCD token buffer based on a token name.\r
+\r
+ Sets the buffer for the token specified by TokenName.\r
+ If SizeOfBuffer is greater than the maximum size supported by TokenName,\r
+ then set SizeOfBuffer to the maximum size supported by TokenName and return\r
+ RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.\r
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size\r
+ supported by TokenName and RETURN_INVALID_PARAMETER must be returned.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ If SizeOfBuffer is NULL, then ASSERT().\r
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
+\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
+ @param Buffer A pointer to the buffer to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetPtrS(TokenName, SizeOfBuffer, Buffer) \\r
+ _PCD_SET_MODE_PTR_S_##TokenName ((SizeOfBuffer), (Buffer))\r
+\r
+\r
+\r
+/**\r
+ Sets a boolean PCD token value based on a token name.\r
+\r
+ Sets the boolean value for the token specified by TokenName.\r
+ If TokenName is not a valid token in the token space, then the module will not build.\r
+\r
+ @param TokenName The name of the PCD token to retrieve a current value for.\r
+ @param Value The boolean value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetBoolS(TokenName, Value) _PCD_SET_MODE_BOOL_S_##TokenName ((Value))\r
+\r
+/**\r
+ Retrieves a token number based on a GUID and a token name.\r
+\r
+ Returns the token number for the token specified by Guid and TokenName.\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return Return the token number.\r
+\r
+**/\r
+#define PcdTokenEx(Guid,TokenName) _PCD_TOKEN_EX_##TokenName(Guid)\r
+\r
+/**\r
+ Retrieves an 8-bit PCD token value based on a GUID and a token name.\r
+\r
+ Returns the 8-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+ \r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return An 8-bit PCD token value.\r
+\r
+**/\r
+#define PcdGetEx8(Guid, TokenName) LibPcdGetEx8 ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+/**\r
+ Retrieves a 16-bit PCD token value based on a GUID and a token name.\r
+\r
+ Returns the 16-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return A 16-bit PCD token value.\r
+\r
+**/\r
+#define PcdGetEx16(Guid, TokenName) LibPcdGetEx16 ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+\r
+/**\r
+ Retrieves a 32-bit PCD token value based on a GUID and a token name.\r
+\r
+ Returns the 32-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return A 32-bit PCD token value.\r
+\r
+**/\r
+#define PcdGetEx32(Guid, TokenName) LibPcdGetEx32 ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+\r
+/**\r
+ Retrieves a 64-bit PCD token value based on a GUID and a token name.\r
+\r
+ Returns the 64-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return A 64-bit PCD token value.\r
+\r
+**/\r
+#define PcdGetEx64(Guid, TokenName) LibPcdGetEx64 ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+\r
+/**\r
+ Retrieves a pointer to a PCD token buffer based on a GUID and a token name.\r
+\r
+ Returns a pointer to the buffer for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return A pointer to a PCD token buffer.\r
+\r
+**/\r
+#define PcdGetExPtr(Guid, TokenName) LibPcdGetExPtr ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+\r
+/**\r
+ Retrieves a Boolean PCD token value based on a GUID and a token name.\r
+\r
+ Returns the Boolean value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to retrieve a current value for. \r
+\r
+ @return A Boolean PCD token value.\r
+\r
+**/\r
+#define PcdGetExBool(Guid, TokenName) LibPcdGetExBool ((Guid), PcdTokenEx(Guid,TokenName))\r
+\r
+\r
+\r
+#ifndef DISABLE_NEW_DEPRECATED_INTERFACES\r
+/**\r
+ Sets an 8-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 8-bit value for the token specified by Guid and TokenName. Value is returned.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 8-bit value to set. \r
+\r
+ @return Return the Value that was set.\r
+\r
+**/\r
+#define PcdSetEx8(Guid, TokenName, Value) LibPcdSetEx8 ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+\r
+/**\r
+ Sets a 16-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 16-bit value for the token specified by Guid and TokenName. Value is returned.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 16-bit value to set. \r
+\r
+ @return Return the Value that was set.\r
+\r
+**/\r
+#define PcdSetEx16(Guid, TokenName, Value) LibPcdSetEx16 ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+\r
+/**\r
+ Sets a 32-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 32-bit value for the token specified by Guid and TokenName. Value is returned.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 32-bit value to set. \r
+\r
+ @return Return the Value that was set.\r
+\r
+**/\r
+#define PcdSetEx32(Guid, TokenName, Value) LibPcdSetEx32 ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+\r
+/**\r
+ Sets a 64-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 64-bit value for the token specified by Guid and TokenName. Value is returned.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 64-bit value to set. \r
+\r
+ @return Return the Value that was set.\r
+\r
+**/\r
+#define PcdSetEx64(Guid, TokenName, Value) LibPcdSetEx64 ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+\r
+/**\r
+ Sets a pointer to a PCD token buffer based on a GUID and a token name.\r
+\r
+ Sets the buffer for the token specified by Guid and TokenName. Buffer is returned. \r
+ If SizeOfBuffer is greater than the maximum size supported by Guid and TokenName, \r
+ then set SizeOfBuffer to the maximum size supported by Guid and TokenName and return \r
+ NULL to indicate that the set operation was not actually performed. If SizeOfBuffer \r
+ is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size supported by\r
+ Guid and TokenName and NULL must be returned.\r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+ \r
+ If Guid is NULL, then ASSERT().\r
+ If SizeOfBuffer is NULL, then ASSERT().\r
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer. \r
+ @param Buffer Pointer to the buffer to set.\r
+ \r
+ @return Return the pointer to the Buffer that was set.\r
+\r
+**/\r
+#define PcdSetExPtr(Guid, TokenName, SizeOfBuffer, Buffer) \\r
+ LibPcdSetExPtr ((Guid), PcdTokenEx(Guid,TokenName), (SizeOfBuffer), (Buffer))\r
+\r
+\r
+/**\r
+ Sets a Boolean PCD token value based on a GUID and a token name.\r
+\r
+ Sets the Boolean value for the token specified by Guid and TokenName. Value is returned. \r
+ If TokenName is not a valid token in the token space specified by Guid, \r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates \r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for. \r
+ @param Value The Boolean value to set.\r
+\r
+ @return Return the Value that was set.\r
+\r
+**/ \r
+#define PcdSetExBool(Guid, TokenName, Value) \\r
+ LibPcdSetExBool((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+#endif\r
+\r
+/**\r
+ Sets an 8-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 8-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates\r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 8-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetEx8S(Guid, TokenName, Value) LibPcdSetEx8S ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+/**\r
+ Sets an 16-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 16-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates\r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 16-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetEx16S(Guid, TokenName, Value) LibPcdSetEx16S ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+/**\r
+ Sets an 32-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 32-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates\r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 32-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetEx32S(Guid, TokenName, Value) LibPcdSetEx32S ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+/**\r
+ Sets an 64-bit PCD token value based on a GUID and a token name.\r
+\r
+ Sets the 64-bit value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates\r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param Value The 64-bit value to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetEx64S(Guid, TokenName, Value) LibPcdSetEx64S ((Guid), PcdTokenEx(Guid,TokenName), (Value))\r
+\r
+/**\r
+ Sets a pointer to a PCD token buffer based on a GUID and a token name.\r
+\r
+ Sets the buffer for the token specified by Guid and TokenName.\r
+ If SizeOfBuffer is greater than the maximum size supported by Guid and TokenName,\r
+ then set SizeOfBuffer to the maximum size supported by Guid and TokenName and return\r
+ RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.\r
+ If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size\r
+ supported by Guid and TokenName and RETURN_INVALID_PARAMETER must be returned.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r
+ If SizeOfBuffer is NULL, then ASSERT().\r
+ If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
+\r
+ @param Guid Pointer to a 128-bit unique value that designates\r
+ which namespace to retrieve a value from.\r
+ @param TokenName The name of the PCD token to set the current value for.\r
+ @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
+ @param Buffer Pointer to the buffer to set.\r
+\r
+ @return The status of the set operation.\r
+\r
+**/\r
+#define PcdSetExPtrS(Guid, TokenName, SizeOfBuffer, Buffer) \\r
+ LibPcdSetExPtrS ((Guid), PcdTokenEx(Guid,TokenName), (SizeOfBuffer), (Buffer))\r
+\r
+\r
+/**\r
+ Sets an boolean PCD token value based on a GUID and a token name.\r
+\r
+ Sets the boolean value for the token specified by Guid and TokenName.\r
+ If TokenName is not a valid token in the token space specified by Guid,\r
+ then the module will not build.\r
+\r
+ If Guid is NULL, then ASSERT().\r