1) Add in support to traverse taken space

2) Remove unused import in DynamicTokenValue.java.
3) Support Byte Stream input for Pointer type Dynamic PCD entry in FPD file.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@616 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2006-06-23 14:41:16 +00:00
parent e88ea4239b
commit 4276d5dacf
13 changed files with 474 additions and 87 deletions

View File

@@ -483,28 +483,47 @@ LibPcdSet64 (
/**
Sets a buffer for the token specified by TokenNumber to
the value specified by Value. Value is returned.
If Value is NULL, then ASSERT().
the value specified by Buffer and SizeOfValue. Buffer to
be set is returned. The content of the buffer could be
overwritten if a Callback on SET is registered with this
TokenNumber.
If SizeOfValue is greater than the maximum
size support by TokenNumber, then set SizeOfValue to the
maximum size supported by TokenNumber and return NULL to
indicate that the set operation was not actually performed.
If SizeOfValue > 0 and Buffer is NULL, then ASSERT().
@param[in] TokenNumber The PCD token number to set a current value for.
@param[in,out] SizeOfBuffer The size, in bytes, of Buffer.
@param[in] Value A pointer to the buffer to set.
@retval VOID* Return the pointer for the buffer been set.
**/
VOID *
EFIAPI
LibPcdSetPtr (
IN UINTN TokenNumber,
IN UINTN SizeOfBuffer,
IN VOID *Buffer
IN UINTN TokenNumber,
IN OUT UINTN *SizeOfBuffer,
IN VOID *Buffer
)
{
EFI_STATUS Status;
UINTN Size;
ASSERT (Buffer != NULL);
ASSERT ((*SizeOfBuffer > 0) && Buffer == NULL);
Status = mPcd->SetPtr (TokenNumber, SizeOfBuffer, Buffer);
Size = LibPcdGetSize (TokenNumber);
if (*SizeOfBuffer > Size) {
*SizeOfBuffer = Size;
return NULL;
}
Status = mPcd->SetPtr (TokenNumber, *SizeOfBuffer, Buffer);
ASSERT_EFI_ERROR (Status);
@@ -678,34 +697,45 @@ LibPcdSetEx64 (
/**
Sets a buffer for the token specified by TokenNumber and
Guid to the value specified by Value. Value is returned.
If Guid is NULL, then ASSERT().
If Value is NULL, then ASSERT().
Sets a buffer for the token specified by TokenNumber to the value specified by
Buffer and SizeOfValue. Buffer is returned. If SizeOfValue is greater than
the maximum size support by TokenNumber, then set SizeOfValue to the maximum size
supported by TokenNumber and return NULL to indicate that the set operation
was not actually performed.
If SizeOfValue > 0 and Buffer is NULL, then ASSERT().
@param[in] Guid Pointer to a 128-bit unique value that
designates which namespace to set a value from.
@param[in] TokenNumber The PCD token number to set a current value for.
@param[in] Value The 8-bit value to set.
@param[in, out] SizeOfBuffer The size, in bytes, of Buffer.
@param[in] Buffer A pointer to the buffer to set.
@retval VOID * Return the value been set.
@retval VOID * Return the pinter to the buffer been set.
**/
VOID *
EFIAPI
LibPcdSetExPtr (
IN CONST GUID *Guid,
IN UINTN TokenNumber,
IN UINTN SizeOfBuffer,
IN VOID *Buffer
IN CONST GUID *Guid,
IN UINTN TokenNumber,
IN OUT UINTN *SizeOfBuffer,
IN VOID *Buffer
)
{
EFI_STATUS Status;
EFI_STATUS Status;
UINTN Size;
ASSERT (Guid != NULL);
ASSERT (Buffer != NULL);
Status = mPcd->SetPtrEx (Guid, TokenNumber, SizeOfBuffer, Buffer);
Size = LibPcdGetExSize (Guid, TokenNumber);
if (*SizeOfBuffer > Size) {
*SizeOfBuffer = Size;
return NULL;
}
Status = mPcd->SetPtrEx (Guid, TokenNumber, *SizeOfBuffer, Buffer);
ASSERT_EFI_ERROR (Status);
@@ -849,3 +879,37 @@ LibPcdGetNextToken (
return TokenNumber;
}
/**
Retrieves the next PCD token space from a token space specified by Guid.
Guid of NULL is reserved to mark the default local token namespace on the current
platform. If Guid is NULL, then the GUID of the first non-local token space of the
current platform is returned. If Guid is the last non-local token space,
then NULL is returned.
If Guid is not NULL and is not a valid token space in the current platform, then ASSERT().
@param[in] Pointer to a 128-bit unique value that designates from which namespace
to start the search.
@retval CONST GUID * The next valid token namespace.
**/
CONST GUID*
EFIAPI
LibPcdGetNextTokenSpace (
IN CONST GUID *Guid
)
{
EFI_STATUS Status;
Status = mPcd->GetNextTokenSpace (&Guid);
ASSERT_EFI_ERROR (Status);
return Guid;
}