When multiple PCDs (DynamicEx) exist in the PCD database which have different
GUIDs but the same C name (i.e. GuidCName1.PcdName and GuidCName2.PcdName) and
there is an attempt to access both from inside the same driver's INF, the
generated .h file contains name collision.
For example, in one .dec we create three different VOID * structures. Below
that is the generated .h file. Notice that
_PCD_GET_MODE_PTR_PcdAtmelAt26df041Spi is defined three times.
But the PI PCD specification says that the token number is unique within the
GUID name space. And the EDK2 specification document makes no mention of any
such restriction, saying rather that: "Every PCD (PcdName) is identified by a
two part definition - the PCD's Token Space Guid CName and the PCD CName. These
two parts are separated by a period "." character."
Furthermore, the tools do not generate an error in this case. It is only
discovered during compilation of the source files.
Tim
gH2OFlashDeviceMfrNameGuid.PcdAtmelAt26df041Spi|"Atmel"|VOID*|0x0000441F
gH2OFlashDevicePartNameGuid.PcdAtmelAt26df041Spi|"AT26DF041"|VOID*|0x0000441F
gH2OFlashDeviceConfigGuid.PcdAtmelAt26df041Spi|{0}|VOID*|0x0000441F
# to be defined in DSC
#define _PCD_TOKEN_PcdAtmelAt26df041Spi 17439U
#define _PCD_GET_MODE_PTR_PcdAtmelAt26df041Spi
LibPcdGetExPtr(&gH2OFlashDeviceMfrNameGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi)
#define _PCD_SET_MODE_PTR_PcdAtmelAt26df041Spi(SizeOfBuffer, Buffer)
LibPcdSetExPtr(&gH2OFlashDeviceMfrNameGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi,
(SizeOfBuffer), (Buffer))
#define _PCD_TOKEN_PcdAtmelAt26df041Spi 17439U
#define _PCD_GET_MODE_PTR_PcdAtmelAt26df041Spi
LibPcdGetExPtr(&gH2OFlashDevicePartNameGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi)
#define _PCD_SET_MODE_PTR_PcdAtmelAt26df041Spi(SizeOfBuffer, Buffer)
LibPcdSetExPtr(&gH2OFlashDevicePartNameGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi,
(SizeOfBuffer), (Buffer))
#define _PCD_TOKEN_PcdAtmelAt26df041Spi 17439U
#define _PCD_GET_MODE_PTR_PcdAtmelAt26df041Spi
LibPcdGetExPtr(&gH2OFlashDeviceConfigGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi)
#define _PCD_SET_MODE_PTR_PcdAtmelAt26df041Spi(SizeOfBuffer, Buffer)
LibPcdSetExPtr(&gH2OFlashDeviceConfigGuid, _PCD_TOKEN_PcdAtmelAt26df041Spi,
(SizeOfBuffer), (Buffer))
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel