diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-06-26 10:18:28 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-06-26 10:18:28 +0000 |
commit | 24e25d11c0460dfb39fade685375c0e58cbcb40e (patch) | |
tree | a3e931c8113a9184433b347bacff079df18acac9 /MdePkg/Library | |
parent | 23f52b03b4202e4dc5af440a90f0b0864a45dbdd (diff) | |
download | edk2-24e25d11c0460dfb39fade685375c0e58cbcb40e.zip edk2-24e25d11c0460dfb39fade685375c0e58cbcb40e.tar.gz edk2-24e25d11c0460dfb39fade685375c0e58cbcb40e.tar.bz2 |
• BaseMemoryLib:
Modify some Aassert()s conditions to sync with MWG 0.56d
Modify some defects in function header.
• PostCodeLib:
Implement PeiDxePostCodeLibReportStatusCode.
• Misc
Rename BaseDebugLibReportStatusCode to PeiDxeDebugLibReportStatusCode
Remove tabs in all .c and .h files in MdePkg.
Rename PeiServicesReinstallPpi() to PeiServicesReInstallPpi()
Adjust some minor coding style in PeCoffLoaderGetEntryPointerLib()
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@626 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library')
94 files changed, 1399 insertions, 715 deletions
diff --git a/MdePkg/Library/BaseLib/Ia32/Non-existing.c b/MdePkg/Library/BaseLib/Ia32/Non-existing.c index 4132d30..b4e50e9 100644 --- a/MdePkg/Library/BaseLib/Ia32/Non-existing.c +++ b/MdePkg/Library/BaseLib/Ia32/Non-existing.c @@ -1,16 +1,16 @@ /** @file
- Non-existing BaseLib functions on Ia32
+ Non-existing BaseLib functions on Ia32
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- Module Name: Non-existing.c
+ Module Name: Non-existing.c
**/
diff --git a/MdePkg/Library/BaseLib/LinkedList.c b/MdePkg/Library/BaseLib/LinkedList.c index be7e0a6..846a813 100644 --- a/MdePkg/Library/BaseLib/LinkedList.c +++ b/MdePkg/Library/BaseLib/LinkedList.c @@ -278,7 +278,7 @@ IsListEmpty ( If Node is not a node in List and Node is not equal to List, then ASSERT().
@param List A pointer to the head node of a doubly linked list.
- @param Node A pointer to a node in the doubly linked list.
+ @param Node A pointer to a node in the doubly linked list.
@retval TRUE Node is one of the nodes in the doubly linked list.
@retval FALSE Node is not one of the nodes in the doubly linked list.
@@ -314,7 +314,7 @@ IsNull ( If Node is not a node in List, then ASSERT().
@param List A pointer to the head node of a doubly linked list.
- @param Node A pointer to a node in the doubly linked list.
+ @param Node A pointer to a node in the doubly linked list.
@retval TRUE Node is the last node in the linked list.
@retval FALSE Node is not the last node in the linked list.
diff --git a/MdePkg/Library/BaseLib/X64/Non-existing.c b/MdePkg/Library/BaseLib/X64/Non-existing.c index b2c7378..fc4fd43 100644 --- a/MdePkg/Library/BaseLib/X64/Non-existing.c +++ b/MdePkg/Library/BaseLib/X64/Non-existing.c @@ -1,16 +1,16 @@ /** @file
- Non-existing BaseLib functions on x64
+ Non-existing BaseLib functions on x64
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
+ Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- Module Name: Non-existing.c
+ Module Name: Non-existing.c
**/
diff --git a/MdePkg/Library/BaseMemoryLib/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLib/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/BaseMemoryLib/CompareMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLib/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLib/CopyMemWrapper.c b/MdePkg/Library/BaseMemoryLib/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/BaseMemoryLib/CopyMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLib/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c b/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c index 53c4e44..3fecfc9 100644 --- a/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c +++ b/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c @@ -161,7 +161,6 @@ InternalMemScanMem8 ( {
CONST UINT8 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT8*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -192,7 +191,6 @@ InternalMemScanMem16 ( {
CONST UINT16 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT16*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -223,7 +221,6 @@ InternalMemScanMem32 ( {
CONST UINT32 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT32*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -254,7 +251,6 @@ InternalMemScanMem64 ( {
CONST UINT64 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT64*)Buffer;
do {
if (*(Pointer++) == Value) {
diff --git a/MdePkg/Library/BaseMemoryLib/MemLibGuid.c b/MdePkg/Library/BaseMemoryLib/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/BaseMemoryLib/MemLibGuid.c +++ b/MdePkg/Library/BaseMemoryLib/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/BaseMemoryLib/ScanMem16Wrapper.c b/MdePkg/Library/BaseMemoryLib/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/BaseMemoryLib/ScanMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLib/ScanMem32Wrapper.c b/MdePkg/Library/BaseMemoryLib/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/BaseMemoryLib/ScanMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLib/ScanMem64Wrapper.c b/MdePkg/Library/BaseMemoryLib/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/BaseMemoryLib/ScanMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLib/ScanMem8Wrapper.c b/MdePkg/Library/BaseMemoryLib/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/BaseMemoryLib/ScanMem8Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLib/SetMem.c b/MdePkg/Library/BaseMemoryLib/SetMem.c index bd7fee0..07acc6f 100644 --- a/MdePkg/Library/BaseMemoryLib/SetMem.c +++ b/MdePkg/Library/BaseMemoryLib/SetMem.c @@ -13,7 +13,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- Module Name: EfiSetMem.c
+ Module Name: SetMem.c
**/
diff --git a/MdePkg/Library/BaseMemoryLib/SetMem16Wrapper.c b/MdePkg/Library/BaseMemoryLib/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/BaseMemoryLib/SetMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c b/MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLib/SetMem64Wrapper.c b/MdePkg/Library/BaseMemoryLib/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/BaseMemoryLib/SetMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLib/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLib/SetMemWrapper.c b/MdePkg/Library/BaseMemoryLib/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/BaseMemoryLib/SetMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLib/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLib/ZeroMemWrapper.c b/MdePkg/Library/BaseMemoryLib/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/BaseMemoryLib/ZeroMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLib/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
diff --git a/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibMmx/CopyMemWrapper.c b/MdePkg/Library/BaseMemoryLibMmx/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/CopyMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/BaseMemoryLibMmx/MemLibGuid.c b/MdePkg/Library/BaseMemoryLibMmx/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/MemLibGuid.c +++ b/MdePkg/Library/BaseMemoryLibMmx/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/BaseMemoryLibMmx/ScanMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/ScanMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibMmx/ScanMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/ScanMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibMmx/ScanMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/ScanMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibMmx/ScanMem8Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/ScanMem8Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibMmx/SetMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/SetMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibMmx/SetMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/SetMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibMmx/SetMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibMmx/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/SetMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibMmx/SetMemWrapper.c b/MdePkg/Library/BaseMemoryLibMmx/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/SetMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibMmx/ZeroMemWrapper.c b/MdePkg/Library/BaseMemoryLibMmx/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/ZeroMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibMmx/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c b/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/SetMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/SetMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/SetMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ZeroMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ZeroMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
diff --git a/MdePkg/Library/BaseMemoryLibSse2/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLibSse2/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/CompareMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibSse2/CopyMemWrapper.c b/MdePkg/Library/BaseMemoryLibSse2/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/CopyMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/BaseMemoryLibSse2/MemLibGuid.c b/MdePkg/Library/BaseMemoryLibSse2/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/MemLibGuid.c +++ b/MdePkg/Library/BaseMemoryLibSse2/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/BaseMemoryLibSse2/ScanMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/ScanMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibSse2/ScanMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/ScanMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibSse2/ScanMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/ScanMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibSse2/ScanMem8Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/ScanMem8Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/BaseMemoryLibSse2/SetMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/SetMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibSse2/SetMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/SetMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibSse2/SetMemWrapper.c b/MdePkg/Library/BaseMemoryLibSse2/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/SetMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/BaseMemoryLibSse2/ZeroMemWrapper.c b/MdePkg/Library/BaseMemoryLibSse2/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/ZeroMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
diff --git a/MdePkg/Library/BasePeCoffLib/BasePeCoff.c b/MdePkg/Library/BasePeCoffLib/BasePeCoff.c index 32a70c0..6b8adc1 100644 --- a/MdePkg/Library/BasePeCoffLib/BasePeCoff.c +++ b/MdePkg/Library/BasePeCoffLib/BasePeCoff.c @@ -560,11 +560,11 @@ PeCoffLoaderRelocateImage ( //
RelocDir = &TeHdr->DataDirectory[0];
RelocBase = (EFI_IMAGE_BASE_RELOCATION *)(UINTN)(
- ImageContext->ImageAddress +
- RelocDir->VirtualAddress +
- sizeof(EFI_TE_IMAGE_HEADER) -
- TeHdr->StrippedSize
- );
+ ImageContext->ImageAddress +
+ RelocDir->VirtualAddress +
+ sizeof(EFI_TE_IMAGE_HEADER) -
+ TeHdr->StrippedSize
+ );
RelocBaseEnd = (EFI_IMAGE_BASE_RELOCATION *) ((UINTN) RelocBase + (UINTN) RelocDir->Size - 1);
}
@@ -580,10 +580,10 @@ PeCoffLoaderRelocateImage ( FixupBase = PeCoffLoaderImageAddress (ImageContext, RelocBase->VirtualAddress);
} else {
FixupBase = (CHAR8 *)(UINTN)(ImageContext->ImageAddress +
- RelocBase->VirtualAddress +
- sizeof(EFI_TE_IMAGE_HEADER) -
- TeHdr->StrippedSize
- );
+ RelocBase->VirtualAddress +
+ sizeof(EFI_TE_IMAGE_HEADER) -
+ TeHdr->StrippedSize
+ );
}
if ((CHAR8 *) RelocEnd < (CHAR8 *) ((UINTN) ImageContext->ImageAddress) ||
@@ -808,9 +808,9 @@ PeCoffLoaderLoadImage ( TeHdr = (EFI_TE_IMAGE_HEADER *) (UINTN) (ImageContext->ImageAddress);
FirstSection = (EFI_IMAGE_SECTION_HEADER *) (
- (UINTN)ImageContext->ImageAddress +
- sizeof(EFI_TE_IMAGE_HEADER)
- );
+ (UINTN)ImageContext->ImageAddress +
+ sizeof(EFI_TE_IMAGE_HEADER)
+ );
NumberOfSections = (UINTN) (TeHdr->NumberOfSections);
}
@@ -905,9 +905,9 @@ PeCoffLoaderLoadImage ( );
} else {
ImageContext->EntryPoint = (PHYSICAL_ADDRESS) (
- (UINTN)ImageContext->ImageAddress +
- (UINTN)TeHdr->AddressOfEntryPoint +
- (UINTN)sizeof(EFI_TE_IMAGE_HEADER) -
+ (UINTN)ImageContext->ImageAddress +
+ (UINTN)TeHdr->AddressOfEntryPoint +
+ (UINTN)sizeof(EFI_TE_IMAGE_HEADER) -
(UINTN) TeHdr->StrippedSize
);
}
@@ -948,11 +948,11 @@ PeCoffLoaderLoadImage ( );
} else {
DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *)(UINTN)(
- ImageContext->ImageAddress +
- ImageContext->DebugDirectoryEntryRva +
- sizeof(EFI_TE_IMAGE_HEADER) -
- TeHdr->StrippedSize
- );
+ ImageContext->ImageAddress +
+ ImageContext->DebugDirectoryEntryRva +
+ sizeof(EFI_TE_IMAGE_HEADER) -
+ TeHdr->StrippedSize
+ );
}
if (DebugEntry != NULL) {
@@ -971,9 +971,9 @@ PeCoffLoaderLoadImage ( ImageContext->CodeView = PeCoffLoaderImageAddress (ImageContext, TempDebugEntryRva);
} else {
ImageContext->CodeView = (VOID *)(
- (UINTN)ImageContext->ImageAddress +
- (UINTN)TempDebugEntryRva +
- (UINTN)sizeof(EFI_TE_IMAGE_HEADER) -
+ (UINTN)ImageContext->ImageAddress +
+ (UINTN)TempDebugEntryRva +
+ (UINTN)sizeof(EFI_TE_IMAGE_HEADER) -
(UINTN) TeHdr->StrippedSize
);
}
diff --git a/MdePkg/Library/BasePerformanceLibNull/PerformanceLib.c b/MdePkg/Library/BasePerformanceLibNull/PerformanceLib.c index ec88d84..406acb5 100644 --- a/MdePkg/Library/BasePerformanceLibNull/PerformanceLib.c +++ b/MdePkg/Library/BasePerformanceLibNull/PerformanceLib.c @@ -22,16 +22,16 @@ If TimeStamp is zero, then this function reads the current time stamp
and adds that time stamp value to the record as the start time.
- @param Handle Pointer to environment specific context used
+ @param Handle Pointer to environment specific context used
to identify the component being measured.
- @param Token Pointer to a Null-terminated ASCII string
+ @param Token Pointer to a Null-terminated ASCII string
that identifies the component being measured.
- @param Module Pointer to a Null-terminated ASCII string
+ @param Module Pointer to a Null-terminated ASCII string
that identifies the module being measured.
- @param TimeStamp 64-bit time stamp.
+ @param TimeStamp 64-bit time stamp.
@retval RETURN_SUCCESS The start of the measurement was recorded.
- @retval RETURN_OUT_OF_RESOURCES There are not enough resources to record the measurement.
+ @retval RETURN_OUT_OF_RESOURCES There are not enough resources to record the measurement.
**/
RETURN_STATUS
@@ -57,16 +57,16 @@ StartPerformanceMeasurement ( the current time stamp and adds that time stamp value to the record as the end time.
If this function is called multiple times for the same record, then the end time is overwritten.
- @param Handle Pointer to environment specific context used
+ @param Handle Pointer to environment specific context used
to identify the component being measured.
- @param Token Pointer to a Null-terminated ASCII string
+ @param Token Pointer to a Null-terminated ASCII string
that identifies the component being measured.
- @param Module Pointer to a Null-terminated ASCII string
+ @param Module Pointer to a Null-terminated ASCII string
that identifies the module being measured.
- @param TimeStamp 64-bit time stamp.
+ @param TimeStamp 64-bit time stamp.
@retval RETURN_SUCCESS The end of the measurement was recorded.
- @retval RETURN_NOT_FOUND The specified measurement record could not be found.
+ @retval RETURN_NOT_FOUND The specified measurement record could not be found.
**/
RETURN_STATUS
@@ -146,7 +146,7 @@ GetPerformanceMeasurement ( @retval TRUE The PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of
PcdPerformanceLibraryPropertyMask is set.
- @retval FALSE The PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of
+ @retval FALSE The PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of
PcdPerformanceLibraryPropertyMask is clear.
**/
diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c index 0a8c22e..bbafeea 100644 --- a/MdePkg/Library/BasePrintLib/PrintLib.c +++ b/MdePkg/Library/BasePrintLib/PrintLib.c @@ -946,7 +946,7 @@ AsciiSPrintUnicodeFormat ( Unicode string.
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
@param Value The 64-bit signed value to convert to a string.
- @param Width The maximum number of Unicode characters to place in Buffer.
+ @param Width The maximum number of Unicode characters to place in Buffer.
@return Total number of characters required to perform the conversion.
@@ -993,7 +993,7 @@ UnicodeValueToString ( ASCII string.
@param Flags The bitmask of flags that specify left justification, zero pad, and commas.
@param Value The 64-bit signed value to convert to a string.
- @param Width The maximum number of ASCII characters to place in Buffer.
+ @param Width The maximum number of ASCII characters to place in Buffer.
@return Total number of characters required to perform the conversion.
diff --git a/MdePkg/Library/BasePrintLib/PrintLibInternal.c b/MdePkg/Library/BasePrintLib/PrintLibInternal.c index 06c2206..9314b60 100644 --- a/MdePkg/Library/BasePrintLib/PrintLibInternal.c +++ b/MdePkg/Library/BasePrintLib/PrintLibInternal.c @@ -117,7 +117,7 @@ BasePrintLibValueToString ( @param Flags The bitmask of flags that specify left justification, zero pad,
and commas.
@param Value The 64-bit signed value to convert to a string.
- @param Width The maximum number of characters to place in Buffer.
+ @param Width The maximum number of characters to place in Buffer.
@param Increment Character increment in Buffer.
@return Total number of characters required to perform the conversion.
diff --git a/MdePkg/Library/BasePrintLib/PrintLibInternal.h b/MdePkg/Library/BasePrintLib/PrintLibInternal.h index f395bb7..5e650b0 100644 --- a/MdePkg/Library/BasePrintLib/PrintLibInternal.h +++ b/MdePkg/Library/BasePrintLib/PrintLibInternal.h @@ -148,7 +148,7 @@ BasePrintLibValueToString ( @param Flags The bitmask of flags that specify left justification, zero pad,
and commas.
@param Value The 64-bit signed value to convert to a string.
- @param Width The maximum number of characters to place in Buffer.
+ @param Width The maximum number of characters to place in Buffer.
@param Increment Character increment in Buffer.
@return Total number of characters required to perform the conversion.
diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.c b/MdePkg/Library/DxePcdLib/DxePcdLib.c index ee51771..fe7ae42 100644 --- a/MdePkg/Library/DxePcdLib/DxePcdLib.c +++ b/MdePkg/Library/DxePcdLib/DxePcdLib.c @@ -20,7 +20,7 @@ static PCD_PROTOCOL *mPcd; /**
The constructor function caches the PCD_PROTOCOL pointer.
- @param[in] ImageHandle The firmware allocated handle for the EFI image.
+ @param[in] ImageHandle The firmware allocated handle for the EFI image.
@param[in] SystemTable A pointer to the EFI System Table.
@retval EFI_SUCCESS The constructor always return EFI_SUCCESS.
diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c new file mode 100644 index 0000000..b06a756 --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c @@ -0,0 +1,283 @@ +/** @file
+ Debug Library that fowards all messages to ReportStatusCode()
+
+ Copyright (c) 2006, Intel Corporation<BR>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+
+/**
+
+ Prints a debug message to the debug output device if the specified error level is enabled.
+
+ If any bit in ErrorLevel is also set in PcdDebugPrintErrorLevel, then print
+ the message specified by Format and the associated variable argument list to
+ the debug output device.
+
+ If Format is NULL, then ASSERT().
+
+ @param ErrorLevel The error level of the debug message.
+ @param Format Format string for the debug message to print.
+
+**/
+VOID
+EFIAPI
+DebugPrint (
+ IN UINTN ErrorLevel,
+ IN CONST CHAR8 *Format,
+ ...
+ )
+{
+ UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof (UINT64)];
+ EFI_DEBUG_INFO *DebugInfo;
+ UINTN TotalSize;
+ UINTN Index;
+ VA_LIST Marker;
+ UINT64 *ArgumentPointer;
+
+ //
+ // If Format is NULL, then ASSERT().
+ //
+ ASSERT (Format != NULL);
+
+ //
+ // Check driver Debug Level value and global debug level
+ //
+ if ((ErrorLevel & PcdGet32(PcdDebugPrintErrorLevel)) == 0) {
+ return;
+ }
+
+ TotalSize = sizeof (EFI_DEBUG_INFO) + 12 * sizeof (UINT64) + AsciiStrLen (Format) + 1;
+ if (TotalSize > EFI_STATUS_CODE_DATA_MAX_SIZE) {
+ return;
+ }
+
+ //
+ // Then EFI_DEBUG_INFO
+ //
+ DebugInfo = (EFI_DEBUG_INFO *)Buffer;
+ DebugInfo->ErrorLevel = (UINT32)ErrorLevel;
+
+ //
+ // 256 byte mini Var Arg stack. That is followed by the format string.
+ //
+ VA_START (Marker, Format);
+ for (Index = 0, ArgumentPointer = (UINT64 *)(DebugInfo + 1); Index < 12; Index++, ArgumentPointer++) {
+ *ArgumentPointer = VA_ARG (Marker, UINT64);
+ }
+ VA_END (Marker);
+ AsciiStrCpy ((CHAR8 *)ArgumentPointer, Format);
+
+ //
+ //
+ //
+ REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
+ EFI_DEBUG_CODE,
+ (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_DC_UNSPECIFIED),
+ DebugInfo,
+ TotalSize
+ );
+}
+
+
+/**
+
+ Prints an assert message containing a filename, line number, and description.
+ This may be followed by a breakpoint or a dead loop.
+
+ Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"
+ to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of
+ PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if
+ DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then
+ CpuDeadLoop() is called. If neither of these bits are set, then this function
+ returns immediately after the message is printed to the debug output device.
+ DebugAssert() must actively prevent recusrsion. If DebugAssert() is called while
+ processing another DebugAssert(), then DebugAssert() must return immediately.
+
+ If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.
+
+ If Description is NULL, then a <Description> string of "(NULL) Description" is printed.
+
+ @param FileName Pointer to the name of the source file that generated the assert condition.
+ @param LineNumber The line number in the source file that generated the assert condition
+ @param Description Pointer to the description of the assert condition.
+
+**/
+VOID
+EFIAPI
+DebugAssert (
+ IN CONST CHAR8 *FileName,
+ IN UINTN LineNumber,
+ IN CONST CHAR8 *Description
+ )
+{
+ UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE / sizeof(UINT64)];
+ EFI_DEBUG_ASSERT_DATA *AssertData;
+ UINTN TotalSize;
+ CHAR8 *Temp;
+
+ //
+ // Make sure it will all fit in the passed in buffer
+ //
+ TotalSize = sizeof (EFI_DEBUG_ASSERT_DATA) + AsciiStrLen (FileName) + 1 + AsciiStrLen (Description) + 1;
+ if (TotalSize <= EFI_STATUS_CODE_DATA_MAX_SIZE) {
+ //
+ // Fill in EFI_DEBUG_ASSERT_DATA
+ //
+ AssertData = (EFI_DEBUG_ASSERT_DATA *)Buffer;
+ AssertData->LineNumber = (UINT32)LineNumber;
+
+ //
+ // Copy Ascii FileName including NULL.
+ //
+ Temp = AsciiStrCpy ((CHAR8 *)(AssertData + 1), FileName);
+
+ //
+ // Copy Ascii Description
+ //
+ AsciiStrCpy (Temp + AsciiStrLen(FileName) + 1, Description);
+
+ REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
+ (EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
+ (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_EC_ILLEGAL_SOFTWARE_STATE),
+ AssertData,
+ TotalSize
+ );
+ }
+
+ //
+ // Generate a Breakpoint, DeadLoop, or NOP based on PCD settings
+ //
+ if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED) != 0) {
+ CpuBreakpoint ();
+ } else if ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED) != 0) {
+ CpuDeadLoop ();
+ }
+}
+
+
+/**
+
+ Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.
+
+ This function fills Length bytes of Buffer with the value specified by
+ PcdDebugClearMemoryValue, and returns Buffer.
+
+ If Buffer is NULL, then ASSERT().
+
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
+
+ @param Buffer Pointer to the target buffer to fill with PcdDebugClearMemoryValue.
+ @param Length Number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.
+
+ @return Buffer
+
+**/
+VOID *
+EFIAPI
+DebugClearMemory (
+ OUT VOID *Buffer,
+ IN UINTN Length
+ )
+{
+ //
+ // If Buffer is NULL, then ASSERT().
+ //
+ ASSERT (Buffer != NULL);
+
+ //
+ // SetMem() checks for the the ASSERT() condition on Length and returns Buffer
+ //
+ return SetMem (Buffer, Length, PcdGet8(PcdDebugClearMemoryValue));
+}
+
+
+/**
+
+ Returns TRUE if ASSERT() macros are enabled.
+
+ This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of
+ PcdDebugProperyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.
+ @retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+DebugAssertEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);
+}
+
+
+/**
+
+ Returns TRUE if DEBUG()macros are enabled.
+
+ This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of
+ PcdDebugProperyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.
+ @retval FALSE The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+DebugPrintEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);
+}
+
+
+/**
+
+ Returns TRUE if DEBUG_CODE()macros are enabled.
+
+ This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of
+ PcdDebugProperyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.
+ @retval FALSE The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+DebugCodeEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);
+}
+
+
+/**
+
+ Returns TRUE if DEBUG_CLEAR_MEMORY()macro is enabled.
+
+ This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of
+ PcdDebugProperyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.
+ @retval FALSE The DEBUG_PROPERTY_DEBUG_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+DebugClearMemoryEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED) != 0);
+}
diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.mbd b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.mbd new file mode 100644 index 0000000..b8ee6a4 --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.mbd @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+-->
+<LibraryModuleBuildDescription xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
+ <MbdLibHeader>
+ <BaseName>PeiDxeDebugLibReportStatusCode</BaseName>
+ <Guid>bda39d3a-451b-4350-8266-81ab10fa0523</Guid>
+ <Version>0</Version>
+ <Description>FIX ME!</Description>
+ <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
+ <License>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ </License>
+ <Created>2006-03-09 23:16</Created>
+ <Modified>2006-03-19 15:17</Modified>
+ </MbdLibHeader>
+</LibraryModuleBuildDescription>
diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa new file mode 100644 index 0000000..a9a965f --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+-->
+<LibraryModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
+ <MsaLibHeader>
+ <BaseName>PeiDxeDebugLibReportStatusCode</BaseName>
+ <ModuleType>PEIM</ModuleType>
+ <ComponentType>LIBRARY</ComponentType>
+ <Guid>bda39d3a-451b-4350-8266-81ab10fa0523</Guid>
+ <Version>0</Version>
+ <Abstract>Debug Library for PEIMs that send debug messages to ReportStatusCode</Abstract>
+ <Description>FIX ME!</Description>
+ <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
+ <License>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ </License>
+ <Created>2006-03-09 23:16</Created>
+ <Updated>2006-03-19 15:17</Updated>
+ <Specification>0</Specification>
+ </MsaLibHeader>
+ <LibraryClassDefinitions>
+ <LibraryClass Usage="ALWAYS_PRODUCED">DebugLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">BaseMemoryLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">ReportStatusCodeLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">PcdLib</LibraryClass>
+ </LibraryClassDefinitions>
+ <SourceFiles>
+ <Filename>DebugLib.c</Filename>
+ </SourceFiles>
+ <Includes>
+ <PackageName>MdePkg</PackageName>
+ </Includes>
+ <PcdCoded>
+ <PcdEntry PcdItemType="FIXED_AT_BUILD">
+ <C_Name>PcdDebugPropertyMask</C_Name>
+ </PcdEntry>
+ <PcdEntry PcdItemType="FIXED_AT_BUILD">
+ <C_Name>PcdDebugClearMemoryValue</C_Name>
+ </PcdEntry>
+ <PcdEntry PcdItemType="PATCHABLE_IN_MODULE">
+ <C_Name>PcdDebugPrintErrorLevel</C_Name>
+ </PcdEntry>
+ </PcdCoded>
+</LibraryModuleSurfaceArea>
diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml new file mode 100644 index 0000000..348a447 --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?><!-- Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
+<project basedir="." default="PeiDxeDebugLibReportStatusCode"><!--Apply external ANT tasks-->
+ <taskdef resource="GenBuild.tasks"/>
+ <taskdef resource="net/sf/antcontrib/antlib.xml"/>
+ <property environment="env"/>
+ <property name="WORKSPACE_DIR" value="${env.WORKSPACE}"/>
+ <import file="${WORKSPACE_DIR}/Tools/Conf/BuildMacro.xml"/><!--MODULE_RELATIVE PATH is relative to PACKAGE_DIR-->
+ <property name="MODULE_RELATIVE_PATH" value="Library/PeiDxeDebugLibReportStatusCode"/>
+ <property name="MODULE_DIR" value="${PACKAGE_DIR}/${MODULE_RELATIVE_PATH}"/>
+ <property name="COMMON_FILE" value="${WORKSPACE_DIR}/Tools/Conf/Common.xml"/>
+ <target name="PeiDxeDebugLibReportStatusCode">
+ <GenBuild baseName="PeiDxeDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.msa"/>
+ </target>
+ <target depends="PeiDxeDebugLibReportStatusCode_clean" name="clean"/>
+ <target depends="PeiDxeDebugLibReportStatusCode_cleanall" name="cleanall"/>
+ <target name="PeiDxeDebugLibReportStatusCode_clean">
+ <OutputDirSetup baseName="PeiDxeDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.msa"/>
+ <if>
+ <available file="${DEST_DIR_OUTPUT}/PeiDxeDebugLibReportStatusCode_build.xml"/>
+ <then>
+ <ant antfile="${DEST_DIR_OUTPUT}/PeiDxeDebugLibReportStatusCode_build.xml" target="clean"/>
+ </then>
+ </if>
+ <delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
+ </target>
+ <target name="PeiDxeDebugLibReportStatusCode_cleanall">
+ <OutputDirSetup baseName="PeiDxeDebugLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxeDebugLibReportStatusCode.msa"/>
+ <if>
+ <available file="${DEST_DIR_OUTPUT}/PeiDxeDebugLibReportStatusCode_build.xml"/>
+ <then>
+ <ant antfile="${DEST_DIR_OUTPUT}/PeiDxeDebugLibReportStatusCode_build.xml" target="cleanall"/>
+ </then>
+ </if>
+ <delete dir="${DEST_DIR_OUTPUT}"/>
+ <delete dir="${DEST_DIR_DEBUG}"/>
+ <delete>
+ <fileset dir="${BIN_DIR}" includes="**PeiDxeDebugLibReportStatusCode*"/>
+ </delete>
+ </target>
+</project>
\ No newline at end of file diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.mbd b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.mbd new file mode 100644 index 0000000..ec8007d --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.mbd @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+-->
+<LibraryModuleBuildDescription xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
+ <MbdLibHeader>
+ <BaseName>PeiDxePostCodeLibReportStatusCode</BaseName>
+ <Guid>55c61087-7367-4546-bc32-4937c5e6aff3</Guid>
+ <Version>0</Version>
+ <Description>FIX ME!</Description>
+ <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
+ <License>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ </License>
+ <Created>2006-03-09 23:16</Created>
+ <Modified>2006-03-19 15:17</Modified>
+ </MbdLibHeader>
+</LibraryModuleBuildDescription>
diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa new file mode 100644 index 0000000..6f3e0ae --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+-->
+<LibraryModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
+ <MsaLibHeader>
+ <BaseName>PeiDxePostCodeLibReportStatusCode</BaseName>
+ <ModuleType>PEIM</ModuleType>
+ <ComponentType>LIBRARY</ComponentType>
+ <Guid>55c61087-7367-4546-bc32-4937c5e6aff3</Guid>
+ <Version>0</Version>
+ <Abstract>Component description file for the entry point to a EFIDXE Drivers</Abstract>
+ <Description>FIX ME!</Description>
+ <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
+ <License>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ </License>
+ <Created>2006-03-09 23:16</Created>
+ <Updated>2006-03-19 15:17</Updated>
+ <Specification>0</Specification>
+ </MsaLibHeader>
+ <LibraryClassDefinitions>
+ <LibraryClass Usage="ALWAYS_PRODUCED">PostCodeLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">ReportStatusCodeLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">PcdLib</LibraryClass>
+ <LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>
+ </LibraryClassDefinitions>
+ <SourceFiles>
+ <Filename>PostCode.c</Filename>
+ </SourceFiles>
+ <Includes>
+ <PackageName>MdePkg</PackageName>
+ </Includes>
+ <PcdCoded>
+ <PcdEntry PcdItemType="FIXED_AT_BUILD">
+ <C_Name>PcdPostCodePropertyMask</C_Name>
+ </PcdEntry>
+ </PcdCoded>
+</LibraryModuleSurfaceArea>
diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c new file mode 100644 index 0000000..c57489d --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c @@ -0,0 +1,150 @@ +/** @file
+ Report Status Code Library Post Code functions for DXE Phase.
+
+ Copyright (c) 2006, Intel Corporation<BR>
+ All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+/**
+ Converts POST code value to status code value.
+
+ This macro converts the post code to status code value. Bits 0..4 of PostCode
+ are mapped to bits 16..20 of status code value, and bits 5..7 of PostCode are mapped to bits
+ 24..26 of status code value.
+
+ @param PostCode POST code value.
+
+ @return The converted status code value.
+
+**/
+#define POST_CODE_TO_STATUS_CODE_VALUE(PostCode) \
+ ((EFI_STATUS_CODE_VALUE) (((PostCode & 0x1f) << 16) | ((PostCode & 0x3) << 19)))
+
+/**
+ Sends an 32-bit value to a POST card.
+
+ Sends the 32-bit value specified by Value to a POST card, and returns Value.
+ Some implementations of this library function may perform I/O operations
+ directly to a POST card device. Other implementations may send Value to
+ ReportStatusCode(), and the status code reporting mechanism will eventually
+ display the 32-bit value on the status reporting device.
+
+ PostCode() must actively prevent recursion. If PostCode() is called while
+ processing another any other Report Status Code Library function, then
+ PostCode() must return Value immediately.
+
+ @param Value The 32-bit value to write to the POST card.
+
+ @return Value
+
+**/
+UINT32
+EFIAPI
+PostCode (
+ IN UINT32 Value
+ )
+{
+ REPORT_STATUS_CODE (EFI_PROGRESS_CODE, POST_CODE_TO_STATUS_CODE_VALUE (Value));
+ return Value;
+}
+
+
+/**
+ Sends an 32-bit value to a POST and associated ASCII string.
+
+ Sends the 32-bit value specified by Value to a POST card, and returns Value.
+ If Description is not NULL, then the ASCII string specified by Description is
+ also passed to the handler that displays the POST card value. Some
+ implementations of this library function may perform I/O operations directly
+ to a POST card device. Other implementations may send Value to ReportStatusCode(),
+ and the status code reporting mechanism will eventually display the 32-bit
+ value on the status reporting device.
+
+ PostCodeWithDescription()must actively prevent recursion. If
+ PostCodeWithDescription() is called while processing another any other Report
+ Status Code Library function, then PostCodeWithDescription() must return Value
+ immediately.
+
+ @param Value The 32-bit value to write to the POST card.
+ @param Description Pointer to an ASCII string that is a description of the
+ POST code value. This is an optional parameter that may
+ be NULL.
+
+ @return Value
+
+**/
+UINT32
+EFIAPI
+PostCodeWithDescription (
+ IN UINT32 Value,
+ IN CONST CHAR8 *Description OPTIONAL
+ )
+{
+ if (Description == NULL) {
+ REPORT_STATUS_CODE (
+ EFI_PROGRESS_CODE,
+ POST_CODE_TO_STATUS_CODE_VALUE (Value)
+ );
+ } else {
+ REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
+ EFI_PROGRESS_CODE,
+ POST_CODE_TO_STATUS_CODE_VALUE (Value),
+ Description,
+ AsciiStrSize (Description)
+ );
+ }
+
+ return Value;
+}
+
+
+/**
+ Returns TRUE if POST Codes are enabled.
+
+ This function returns TRUE if the POST_CODE_PROPERTY_POST_CODE_ENABLED
+ bit of PcdPostCodePropertyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The POST_CODE_PROPERTY_POST_CODE_ENABLED bit of
+ PcdPostCodeProperyMask is set.
+ @retval FALSE The POST_CODE_PROPERTY_POST_CODE_ENABLED bit of
+ PcdPostCodeProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+PostCodeEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdPostCodePropertyMask) & POST_CODE_PROPERTY_POST_CODE_ENABLED) != 0);
+}
+
+
+/**
+ Returns TRUE if POST code descriptions are enabled.
+
+ This function returns TRUE if the
+ POST_CODE_PROPERTY_POST_CODE_ENABLED bit of
+ PcdPostCodePropertyMask is set. Otherwise FALSE is returned.
+
+ @retval TRUE The POST_CODE_PROPERTY_POST_CODE_ENABLED
+ bit of PcdPostCodeProperyMask is set.
+ @retval FALSE The POST_CODE_PROPERTY_POST_CODE_ENABLED
+ bit of PcdPostCodeProperyMask is clear.
+
+**/
+BOOLEAN
+EFIAPI
+PostCodeDescriptionEnabled (
+ VOID
+ )
+{
+ return ((PcdGet8(PcdPostCodePropertyMask) & POST_CODE_PROPERTY_POST_CODE_ENABLED) != 0);
+}
diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/build.xml b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/build.xml new file mode 100644 index 0000000..3303727 --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/build.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?><!-- Copyright (c) 2006, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
+<project basedir="." default="PeiDxePostCodeLibReportStatusCode"><!--Apply external ANT tasks-->
+ <taskdef resource="GenBuild.tasks"/>
+ <taskdef resource="net/sf/antcontrib/antlib.xml"/>
+ <property environment="env"/>
+ <property name="WORKSPACE_DIR" value="${env.WORKSPACE}"/>
+ <import file="${WORKSPACE_DIR}/Tools/Conf/BuildMacro.xml"/><!--MODULE_RELATIVE PATH is relative to PACKAGE_DIR-->
+ <property name="MODULE_RELATIVE_PATH" value="Library/PeiDxePostCodeLibReportStatusCode"/>
+ <property name="MODULE_DIR" value="${PACKAGE_DIR}/${MODULE_RELATIVE_PATH}"/>
+ <property name="COMMON_FILE" value="${WORKSPACE_DIR}/Tools/Conf/Common.xml"/>
+ <target name="PeiDxePostCodeLibReportStatusCode">
+ <GenBuild baseName="PeiDxePostCodeLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.msa"/>
+ </target>
+ <target depends="PeiDxePostCodeLibReportStatusCode_clean" name="clean"/>
+ <target depends="PeiDxePostCodeLibReportStatusCode_cleanall" name="cleanall"/>
+ <target name="PeiDxePostCodeLibReportStatusCode_clean">
+ <OutputDirSetup baseName="PeiDxePostCodeLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.msa"/>
+ <if>
+ <available file="${DEST_DIR_OUTPUT}/PeiDxePostCodeLibReportStatusCode_build.xml"/>
+ <then>
+ <ant antfile="${DEST_DIR_OUTPUT}/PeiDxePostCodeLibReportStatusCode_build.xml" target="clean"/>
+ </then>
+ </if>
+ <delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
+ </target>
+ <target name="PeiDxePostCodeLibReportStatusCode_cleanall">
+ <OutputDirSetup baseName="PeiDxePostCodeLibReportStatusCode" mbdFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.mbd" msaFilename="${MODULE_DIR}/PeiDxePostCodeLibReportStatusCode.msa"/>
+ <if>
+ <available file="${DEST_DIR_OUTPUT}/PeiDxePostCodeLibReportStatusCode_build.xml"/>
+ <then>
+ <ant antfile="${DEST_DIR_OUTPUT}/PeiDxePostCodeLibReportStatusCode_build.xml" target="cleanall"/>
+ </then>
+ </if>
+ <delete dir="${DEST_DIR_OUTPUT}"/>
+ <delete dir="${DEST_DIR_DEBUG}"/>
+ <delete>
+ <fileset dir="${BIN_DIR}" includes="**PeiDxePostCodeLibReportStatusCode*"/>
+ </delete>
+ </target>
+</project>
\ No newline at end of file diff --git a/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c b/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c +++ b/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/PeiMemoryLib/CopyMemWrapper.c b/MdePkg/Library/PeiMemoryLib/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/PeiMemoryLib/CopyMemWrapper.c +++ b/MdePkg/Library/PeiMemoryLib/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/PeiMemoryLib/MemLibGeneric.c b/MdePkg/Library/PeiMemoryLib/MemLibGeneric.c index 53c4e44..3fecfc9 100644 --- a/MdePkg/Library/PeiMemoryLib/MemLibGeneric.c +++ b/MdePkg/Library/PeiMemoryLib/MemLibGeneric.c @@ -161,7 +161,6 @@ InternalMemScanMem8 ( {
CONST UINT8 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT8*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -192,7 +191,6 @@ InternalMemScanMem16 ( {
CONST UINT16 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT16*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -223,7 +221,6 @@ InternalMemScanMem32 ( {
CONST UINT32 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT32*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -254,7 +251,6 @@ InternalMemScanMem64 ( {
CONST UINT64 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT64*)Buffer;
do {
if (*(Pointer++) == Value) {
diff --git a/MdePkg/Library/PeiMemoryLib/MemLibGuid.c b/MdePkg/Library/PeiMemoryLib/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/PeiMemoryLib/MemLibGuid.c +++ b/MdePkg/Library/PeiMemoryLib/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/PeiMemoryLib/ScanMem16Wrapper.c b/MdePkg/Library/PeiMemoryLib/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/PeiMemoryLib/ScanMem16Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/PeiMemoryLib/ScanMem32Wrapper.c b/MdePkg/Library/PeiMemoryLib/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/PeiMemoryLib/ScanMem32Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/PeiMemoryLib/ScanMem64Wrapper.c b/MdePkg/Library/PeiMemoryLib/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/PeiMemoryLib/ScanMem64Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/PeiMemoryLib/ScanMem8Wrapper.c b/MdePkg/Library/PeiMemoryLib/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/PeiMemoryLib/ScanMem8Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/PeiMemoryLib/SetMem16Wrapper.c b/MdePkg/Library/PeiMemoryLib/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/PeiMemoryLib/SetMem16Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/PeiMemoryLib/SetMem32Wrapper.c b/MdePkg/Library/PeiMemoryLib/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/PeiMemoryLib/SetMem32Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/PeiMemoryLib/SetMem64Wrapper.c b/MdePkg/Library/PeiMemoryLib/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/PeiMemoryLib/SetMem64Wrapper.c +++ b/MdePkg/Library/PeiMemoryLib/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/PeiMemoryLib/SetMemWrapper.c b/MdePkg/Library/PeiMemoryLib/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/PeiMemoryLib/SetMemWrapper.c +++ b/MdePkg/Library/PeiMemoryLib/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/PeiMemoryLib/ZeroMemWrapper.c b/MdePkg/Library/PeiMemoryLib/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/PeiMemoryLib/ZeroMemWrapper.c +++ b/MdePkg/Library/PeiMemoryLib/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
diff --git a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c index ef16064..2f666a6 100644 --- a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c +++ b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c @@ -54,7 +54,7 @@ PeiServicesInstallPpi ( **/
EFI_STATUS
EFIAPI
-PeiServicesReinstallPpi (
+PeiServicesReInstallPpi (
IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,
IN EFI_PEI_PPI_DESCRIPTOR *NewPpi
)
diff --git a/MdePkg/Library/UefiMemoryLib/CompareMemWrapper.c b/MdePkg/Library/UefiMemoryLib/CompareMemWrapper.c index 6081bbe..e3b0fe3 100644 --- a/MdePkg/Library/UefiMemoryLib/CompareMemWrapper.c +++ b/MdePkg/Library/UefiMemoryLib/CompareMemWrapper.c @@ -50,9 +50,9 @@ INTN
EFIAPI
CompareMem (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/UefiMemoryLib/CopyMemWrapper.c b/MdePkg/Library/UefiMemoryLib/CopyMemWrapper.c index 5ca62f5..1fd00ac 100644 --- a/MdePkg/Library/UefiMemoryLib/CopyMemWrapper.c +++ b/MdePkg/Library/UefiMemoryLib/CopyMemWrapper.c @@ -26,41 +26,37 @@ #include "MemLibInternals.h"
/**
- Copy Length bytes from Source to Destination.
+ Copies a source buffer to a destination buffer, and returns the destination buffer.
- This function copies Length bytes from SourceBuffer to DestinationBuffer, and
- returns DestinationBuffer. The implementation must be reentrant, and it must
- handle the case where SourceBuffer overlaps DestinationBuffer.
+ This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
+ DestinationBuffer. The implementation must be reentrant, and it must handle the case
+ where SourceBuffer overlaps DestinationBuffer.
+ If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
- If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then
- ASSERT().
- If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
+ @param DestinationBuffer Pointer to the destination buffer of the memory copy.
+ @param SourceBuffer Pointer to the source buffer of the memory copy.
+ @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
- @param Destination Target of copy
- @param Source Place to copy from
- @param Length Number of bytes to copy
-
- @return Destination
+ @return DestinationBuffer.
**/
VOID *
EFIAPI
CopyMem (
- OUT VOID *Destination,
- IN CONST VOID *Source,
- IN UINTN Length
+ OUT VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
- ASSERT (
- Destination == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Destination + 1
- );
- ASSERT (
- Source == NULL ||
- Length <= MAX_ADDRESS - (UINTN)Source + 1
- );
- if (Destination == Source || Length == 0) {
- return Destination;
+ if (Length == 0) {
+ return DestinationBuffer;
+ }
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
+
+ if (DestinationBuffer == SourceBuffer) {
+ return DestinationBuffer;
}
- return InternalMemCopyMem (Destination, Source, Length);
+ return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
}
diff --git a/MdePkg/Library/UefiMemoryLib/MemLibGeneric.c b/MdePkg/Library/UefiMemoryLib/MemLibGeneric.c index 53c4e44..3fecfc9 100644 --- a/MdePkg/Library/UefiMemoryLib/MemLibGeneric.c +++ b/MdePkg/Library/UefiMemoryLib/MemLibGeneric.c @@ -161,7 +161,6 @@ InternalMemScanMem8 ( {
CONST UINT8 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT8*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -192,7 +191,6 @@ InternalMemScanMem16 ( {
CONST UINT16 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT16*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -223,7 +221,6 @@ InternalMemScanMem32 ( {
CONST UINT32 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT32*)Buffer;
do {
if (*(Pointer++) == Value) {
@@ -254,7 +251,6 @@ InternalMemScanMem64 ( {
CONST UINT64 *Pointer;
- ASSERT (Length > 0);
Pointer = (CONST UINT64*)Buffer;
do {
if (*(Pointer++) == Value) {
diff --git a/MdePkg/Library/UefiMemoryLib/MemLibGuid.c b/MdePkg/Library/UefiMemoryLib/MemLibGuid.c index c54983c..351e370 100644 --- a/MdePkg/Library/UefiMemoryLib/MemLibGuid.c +++ b/MdePkg/Library/UefiMemoryLib/MemLibGuid.c @@ -24,25 +24,24 @@ **/
/**
- This function copies a source GUID to a destination GUID.
-
- This function copies the contents of the 128-bit GUID specified by SourceGuid
- to DestinationGuid, and returns DestinationGuid.
+ Copies a source GUID to a destination GUID.
+ This function copies the contents of the 128-bit GUID specified by SourceGuid to
+ DestinationGuid, and returns DestinationGuid.
If DestinationGuid is NULL, then ASSERT().
If SourceGuid is NULL, then ASSERT().
- @param DestinationGuid Pointer to the destination GUID.
- @param SourceGuid Pointer to the source GUID.
+ @param DestinationGuid Pointer to the destination GUID.
+ @param SourceGuid Pointer to the source GUID.
- @return DestinationGuid
+ @return DestinationGuid.
**/
GUID *
EFIAPI
CopyGuid (
- OUT GUID *DestinationGuid,
- IN CONST GUID *SourceGuid
+ OUT GUID *DestinationGuid,
+ IN CONST GUID *SourceGuid
)
{
WriteUnaligned64 (
@@ -57,27 +56,25 @@ CopyGuid ( }
/**
- Compares two GUIDs
-
- This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE
- is returned. If there are any bit differences in the two GUIDs, then FALSE is
- returned.
+ Compares two GUIDs.
+ This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
+ If there are any bit differences in the two GUIDs, then FALSE is returned.
If Guid1 is NULL, then ASSERT().
If Guid2 is NULL, then ASSERT().
- @param Guid1 guid to compare
- @param Guid2 guid to compare
+ @param Guid1 A pointer to a 128 bit GUID.
+ @param Guid2 A pointer to a 128 bit GUID.
- @retval TRUE if Guid1 == Guid2
- @retval FALSE if Guid1 != Guid2
+ @retval TRUE Guid1 and Guid2 are identical.
+ @retval FALSE Guid1 and Guid2 are not identical.
**/
BOOLEAN
EFIAPI
CompareGuid (
- IN CONST GUID *Guid1,
- IN CONST GUID *Guid2
+ IN CONST GUID *Guid1,
+ IN CONST GUID *Guid2
)
{
return (BOOLEAN)(
@@ -93,28 +90,27 @@ CompareGuid ( in the target buffer.
This function searches target the buffer specified by Buffer and Length from
- the lowest address to the highest address at 128-bit increments for the
- 128-bit GUID value that matches Guid. If a match is found, then a pointer to
- the matching GUID in the target buffer is returned. If no match is found,
- then NULL is returned. If Length is 0, then NULL is returned.
-
- If Buffer is NULL, then ASSERT().
+ the lowest address to the highest address at 128-bit increments for the 128-bit
+ GUID value that matches Guid. If a match is found, then a pointer to the matching
+ GUID in the target buffer is returned. If no match is found, then NULL is returned.
+ If Length is 0, then NULL is returned.
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
@param Buffer Pointer to the target buffer to scan.
@param Length Number of bytes in Buffer to scan.
@param Guid Value to search for in the target buffer.
- @return Pointer to the first occurrence.
- @retval NULL if Length == 0 or Guid was not found.
+ @return A pointer to the matching Guid in the target buffer or NULL otherwise.
+
**/
VOID *
EFIAPI
ScanGuid (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN CONST GUID *Guid
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN CONST GUID *Guid
)
{
CONST GUID *GuidPtr;
diff --git a/MdePkg/Library/UefiMemoryLib/ScanMem16Wrapper.c b/MdePkg/Library/UefiMemoryLib/ScanMem16Wrapper.c index d336d59..9ffc2cf 100644 --- a/MdePkg/Library/UefiMemoryLib/ScanMem16Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/ScanMem16Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem16 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem16 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem16 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/UefiMemoryLib/ScanMem32Wrapper.c b/MdePkg/Library/UefiMemoryLib/ScanMem32Wrapper.c index 8de5594..6b0beee 100644 --- a/MdePkg/Library/UefiMemoryLib/ScanMem32Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/ScanMem32Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem32 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem32 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem32 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/UefiMemoryLib/ScanMem64Wrapper.c b/MdePkg/Library/UefiMemoryLib/ScanMem64Wrapper.c index 228c864..589d45c 100644 --- a/MdePkg/Library/UefiMemoryLib/ScanMem64Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/ScanMem64Wrapper.c @@ -47,12 +47,15 @@ VOID *
EFIAPI
ScanMem64 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
- if (Length == 0) {
+ UINTN Stride;
+
+ Stride = Length / sizeof (Value);
+ if (Stride == 0) {
return NULL;
}
@@ -60,5 +63,5 @@ ScanMem64 ( ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem64 (Buffer, Stride, Value);
}
diff --git a/MdePkg/Library/UefiMemoryLib/ScanMem8Wrapper.c b/MdePkg/Library/UefiMemoryLib/ScanMem8Wrapper.c index 72a8078..4dc8bac 100644 --- a/MdePkg/Library/UefiMemoryLib/ScanMem8Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/ScanMem8Wrapper.c @@ -46,9 +46,9 @@ VOID *
EFIAPI
ScanMem8 (
- IN CONST VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ IN CONST VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
@@ -57,5 +57,5 @@ ScanMem8 ( ASSERT (Buffer != NULL);
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
- return (VOID*)InternalMemScanMem8 (Buffer, Length / sizeof (Value), Value);
+ return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
}
diff --git a/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c b/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c index fd3720c..41467a9 100644 --- a/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 16-bit boundary, then ASSERT().
If Length is not aligned on a 16-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem16 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT16 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT16 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/UefiMemoryLib/SetMem32Wrapper.c b/MdePkg/Library/UefiMemoryLib/SetMem32Wrapper.c index 77f1abd..4258406 100644 --- a/MdePkg/Library/UefiMemoryLib/SetMem32Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 32-bit boundary, then ASSERT().
If Length is not aligned on a 32-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem32 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT32 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT32 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/UefiMemoryLib/SetMem64Wrapper.c b/MdePkg/Library/UefiMemoryLib/SetMem64Wrapper.c index f95b97f..4a1eda8 100644 --- a/MdePkg/Library/UefiMemoryLib/SetMem64Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/SetMem64Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 64-bits in for Length
bytes of Buffer.
- If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().
+ If Length > 0 and Buffer is NULL, then ASSERT().
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
If Buffer is not aligned on a 64-bit boundary, then ASSERT().
If Length is not aligned on a 64-bit boundary, then ASSERT().
@@ -41,15 +41,15 @@ @param Length Number of bytes in Buffer to fill.
@param Value Value with which to fill Length bytes of Buffer.
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
SetMem64 (
- OUT VOID *Buffer,
- IN UINTN Length,
- IN UINT64 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT64 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/UefiMemoryLib/SetMemWrapper.c b/MdePkg/Library/UefiMemoryLib/SetMemWrapper.c index d0e8760..3965be7 100644 --- a/MdePkg/Library/UefiMemoryLib/SetMemWrapper.c +++ b/MdePkg/Library/UefiMemoryLib/SetMemWrapper.c @@ -41,9 +41,9 @@ VOID *
EFIAPI
SetMem (
- IN VOID *Buffer,
- IN UINTN Length,
- IN UINT8 Value
+ OUT VOID *Buffer,
+ IN UINTN Length,
+ IN UINT8 Value
)
{
if (Length == 0) {
diff --git a/MdePkg/Library/UefiMemoryLib/ZeroMemWrapper.c b/MdePkg/Library/UefiMemoryLib/ZeroMemWrapper.c index 4a3d615..56dbe5d 100644 --- a/MdePkg/Library/UefiMemoryLib/ZeroMemWrapper.c +++ b/MdePkg/Library/UefiMemoryLib/ZeroMemWrapper.c @@ -26,24 +26,23 @@ #include "MemLibInternals.h"
/**
- Set Buffer to 0 for Size bytes.
+ Fills a target buffer with zeros, and returns the target buffer.
This function fills Length bytes of Buffer with zeros, and returns Buffer.
+ If Length > 0 and Buffer is NULL, then ASSERT().
+ If Length is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT().
- If Buffer is NULL and Length > 0, then ASSERT().
- If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
+ @param Buffer Pointer to the target buffer to fill with zeros.
+ @param Length Number of bytes in Buffer to fill with zeros.
- @param Buffer Memory to set.
- @param Size Number of bytes to set
-
- @return Buffer
+ @return Buffer.
**/
VOID *
EFIAPI
ZeroMem (
- IN VOID *Buffer,
- IN UINTN Length
+ OUT VOID *Buffer,
+ IN UINTN Length
)
{
ASSERT (!(Buffer == NULL && Length > 0));
|