From 24e25d11c0460dfb39fade685375c0e58cbcb40e Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Mon, 26 Jun 2006 10:18:28 +0000 Subject: =?UTF-8?q?=E2=80=A2=09BaseMemoryLib:=20=09Modify=20some=20Aassert?= =?UTF-8?q?()s=20conditions=20to=20sync=20with=20MWG=200.56d=20=09Modify?= =?UTF-8?q?=20some=20defects=20in=20function=20header.=20=E2=80=A2=09PostC?= =?UTF-8?q?odeLib:=20Implement=20PeiDxePostCodeLibReportStatusCode.=20?= =?UTF-8?q?=E2=80=A2=09Misc=20Rename=20BaseDebugLibReportStatusCode=20to?= =?UTF-8?q?=20PeiDxeDebugLibReportStatusCode=20=09Remove=20tabs=20in=20all?= =?UTF-8?q?=20.c=20and=20.h=20files=20in=20MdePkg.=20=09Rename=20PeiServic?= =?UTF-8?q?esReinstallPpi()=20to=20PeiServicesReInstallPpi()=20=09Adjust?= =?UTF-8?q?=20some=20minor=20coding=20style=20in=20PeCoffLoaderGetEntryPoi?= =?UTF-8?q?nterLib()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@626 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/Ia32/Non-existing.c | 18 +- MdePkg/Library/BaseLib/LinkedList.c | 4 +- MdePkg/Library/BaseLib/X64/Non-existing.c | 18 +- MdePkg/Library/BaseMemoryLib/CompareMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLib/CopyMemWrapper.c | 48 ++-- MdePkg/Library/BaseMemoryLib/MemLibGeneric.c | 4 - MdePkg/Library/BaseMemoryLib/MemLibGuid.c | 60 ++--- MdePkg/Library/BaseMemoryLib/ScanMem16Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLib/ScanMem32Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLib/ScanMem64Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLib/ScanMem8Wrapper.c | 8 +- MdePkg/Library/BaseMemoryLib/SetMem.c | 2 +- MdePkg/Library/BaseMemoryLib/SetMem16Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLib/SetMem64Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLib/SetMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLib/ZeroMemWrapper.c | 17 +- .../Library/BaseMemoryLibMmx/CompareMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLibMmx/CopyMemWrapper.c | 48 ++-- MdePkg/Library/BaseMemoryLibMmx/MemLibGuid.c | 60 ++--- MdePkg/Library/BaseMemoryLibMmx/ScanMem16Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLibMmx/ScanMem32Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLibMmx/ScanMem64Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLibMmx/ScanMem8Wrapper.c | 8 +- MdePkg/Library/BaseMemoryLibMmx/SetMem16Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibMmx/SetMem32Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibMmx/SetMem64Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibMmx/SetMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLibMmx/ZeroMemWrapper.c | 17 +- .../BaseMemoryLibRepStr/CompareMemWrapper.c | 6 +- .../Library/BaseMemoryLibRepStr/CopyMemWrapper.c | 48 ++-- MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c | 60 ++--- .../Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c | 13 +- .../Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c | 13 +- .../Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c | 13 +- .../Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c | 8 +- .../Library/BaseMemoryLibRepStr/SetMem16Wrapper.c | 10 +- .../Library/BaseMemoryLibRepStr/SetMem32Wrapper.c | 10 +- .../Library/BaseMemoryLibRepStr/SetMem64Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c | 6 +- .../Library/BaseMemoryLibRepStr/ZeroMemWrapper.c | 17 +- .../Library/BaseMemoryLibSse2/CompareMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLibSse2/CopyMemWrapper.c | 48 ++-- MdePkg/Library/BaseMemoryLibSse2/MemLibGuid.c | 60 ++--- .../Library/BaseMemoryLibSse2/ScanMem16Wrapper.c | 13 +- .../Library/BaseMemoryLibSse2/ScanMem32Wrapper.c | 13 +- .../Library/BaseMemoryLibSse2/ScanMem64Wrapper.c | 13 +- MdePkg/Library/BaseMemoryLibSse2/ScanMem8Wrapper.c | 8 +- MdePkg/Library/BaseMemoryLibSse2/SetMem16Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibSse2/SetMem64Wrapper.c | 10 +- MdePkg/Library/BaseMemoryLibSse2/SetMemWrapper.c | 6 +- MdePkg/Library/BaseMemoryLibSse2/ZeroMemWrapper.c | 17 +- MdePkg/Library/BasePeCoffLib/BasePeCoff.c | 46 ++-- .../BasePerformanceLibNull/PerformanceLib.c | 22 +- MdePkg/Library/BasePrintLib/PrintLib.c | 4 +- MdePkg/Library/BasePrintLib/PrintLibInternal.c | 2 +- MdePkg/Library/BasePrintLib/PrintLibInternal.h | 2 +- MdePkg/Library/DxePcdLib/DxePcdLib.c | 2 +- .../PeiDxeDebugLibReportStatusCode/DebugLib.c | 283 +++++++++++++++++++++ .../PeiDxeDebugLibReportStatusCode.mbd | 30 +++ .../PeiDxeDebugLibReportStatusCode.msa | 58 +++++ .../PeiDxeDebugLibReportStatusCode/build.xml | 47 ++++ .../PeiDxePostCodeLibReportStatusCode.mbd | 30 +++ .../PeiDxePostCodeLibReportStatusCode.msa | 51 ++++ .../PeiDxePostCodeLibReportStatusCode/PostCode.c | 150 +++++++++++ .../PeiDxePostCodeLibReportStatusCode/build.xml | 47 ++++ MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c | 6 +- MdePkg/Library/PeiMemoryLib/CopyMemWrapper.c | 48 ++-- MdePkg/Library/PeiMemoryLib/MemLibGeneric.c | 4 - MdePkg/Library/PeiMemoryLib/MemLibGuid.c | 60 ++--- MdePkg/Library/PeiMemoryLib/ScanMem16Wrapper.c | 13 +- MdePkg/Library/PeiMemoryLib/ScanMem32Wrapper.c | 13 +- MdePkg/Library/PeiMemoryLib/ScanMem64Wrapper.c | 13 +- MdePkg/Library/PeiMemoryLib/ScanMem8Wrapper.c | 8 +- MdePkg/Library/PeiMemoryLib/SetMem16Wrapper.c | 10 +- MdePkg/Library/PeiMemoryLib/SetMem32Wrapper.c | 10 +- MdePkg/Library/PeiMemoryLib/SetMem64Wrapper.c | 10 +- MdePkg/Library/PeiMemoryLib/SetMemWrapper.c | 6 +- MdePkg/Library/PeiMemoryLib/ZeroMemWrapper.c | 17 +- MdePkg/Library/PeiServicesLib/PeiServicesLib.c | 2 +- MdePkg/Library/UefiMemoryLib/CompareMemWrapper.c | 6 +- MdePkg/Library/UefiMemoryLib/CopyMemWrapper.c | 48 ++-- MdePkg/Library/UefiMemoryLib/MemLibGeneric.c | 4 - MdePkg/Library/UefiMemoryLib/MemLibGuid.c | 60 ++--- MdePkg/Library/UefiMemoryLib/ScanMem16Wrapper.c | 13 +- MdePkg/Library/UefiMemoryLib/ScanMem32Wrapper.c | 13 +- MdePkg/Library/UefiMemoryLib/ScanMem64Wrapper.c | 13 +- MdePkg/Library/UefiMemoryLib/ScanMem8Wrapper.c | 8 +- MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c | 10 +- MdePkg/Library/UefiMemoryLib/SetMem32Wrapper.c | 10 +- MdePkg/Library/UefiMemoryLib/SetMem64Wrapper.c | 10 +- MdePkg/Library/UefiMemoryLib/SetMemWrapper.c | 6 +- MdePkg/Library/UefiMemoryLib/ZeroMemWrapper.c | 17 +- 94 files changed, 1399 insertions(+), 715 deletions(-) create mode 100644 MdePkg/Library/PeiDxeDebugLibReportStatusCode/DebugLib.c create mode 100644 MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.mbd create mode 100644 MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa create mode 100644 MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml create mode 100644 MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.mbd create mode 100644 MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa create mode 100644 MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c create mode 100644 MdePkg/Library/PeiDxePostCodeLibReportStatusCode/build.xml (limited to 'MdePkg/Library') diff --git a/MdePkg/Library/BaseLib/Ia32/Non-existing.c b/MdePkg/Library/BaseLib/Ia32/Non-existing.c index 4132d30c31..b4e50e9d7b 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 be7e0a64b7..846a813269 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 b2c737857d..fc4fd43898 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 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 53c4e4416b..3fecfc9ff0 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 bd7fee014d..07acc6fbfe 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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 32a70c00c4..6b8adc1fd6 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 ec88d848ae..406acb5ca0 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 0a8c22ed16..bbafeeaec5 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 06c220692e..9314b60911 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 f395bb7956..5e650b0123 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 ee517715f5..fe7ae4247c 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 0000000000..b06a75660f --- /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
+ 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 (): \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 string of "(NULL) Filename" is printed. + + If Description is NULL, then a 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 0000000000..b8ee6a45bd --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.mbd @@ -0,0 +1,30 @@ + + + + + PeiDxeDebugLibReportStatusCode + bda39d3a-451b-4350-8266-81ab10fa0523 + 0 + FIX ME! + Copyright (c) 2004-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. + + 2006-03-09 23:16 + 2006-03-19 15:17 + + diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa new file mode 100644 index 0000000000..a9a965f9ba --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.msa @@ -0,0 +1,58 @@ + + + + + PeiDxeDebugLibReportStatusCode + PEIM + LIBRARY + bda39d3a-451b-4350-8266-81ab10fa0523 + 0 + Debug Library for PEIMs that send debug messages to ReportStatusCode + FIX ME! + Copyright (c) 2004-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. + + 2006-03-09 23:16 + 2006-03-19 15:17 + 0 + + + DebugLib + BaseLib + BaseMemoryLib + ReportStatusCodeLib + PcdLib + + + DebugLib.c + + + MdePkg + + + + PcdDebugPropertyMask + + + PcdDebugClearMemoryValue + + + PcdDebugPrintErrorLevel + + + diff --git a/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml new file mode 100644 index 0000000000..348a4478bb --- /dev/null +++ b/MdePkg/Library/PeiDxeDebugLibReportStatusCode/build.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 0000000000..ec8007d7a1 --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.mbd @@ -0,0 +1,30 @@ + + + + + PeiDxePostCodeLibReportStatusCode + 55c61087-7367-4546-bc32-4937c5e6aff3 + 0 + FIX ME! + Copyright (c) 2004-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. + + 2006-03-09 23:16 + 2006-03-19 15:17 + + diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa new file mode 100644 index 0000000000..6f3e0ae169 --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa @@ -0,0 +1,51 @@ + + + + + PeiDxePostCodeLibReportStatusCode + PEIM + LIBRARY + 55c61087-7367-4546-bc32-4937c5e6aff3 + 0 + Component description file for the entry point to a EFIDXE Drivers + FIX ME! + Copyright (c) 2004-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. + + 2006-03-09 23:16 + 2006-03-19 15:17 + 0 + + + PostCodeLib + ReportStatusCodeLib + PcdLib + BaseLib + + + PostCode.c + + + MdePkg + + + + PcdPostCodePropertyMask + + + diff --git a/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/PostCode.c new file mode 100644 index 0000000000..c57489dc3d --- /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
+ 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 0000000000..33037278c6 --- /dev/null +++ b/MdePkg/Library/PeiDxePostCodeLibReportStatusCode/build.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c b/MdePkg/Library/PeiMemoryLib/CompareMemWrapper.c index 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 53c4e4416b..3fecfc9ff0 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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 ef1606403e..2f666a6963 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 6081bbe1b7..e3b0fe3fd6 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 5ca62f5047..1fd00acabd 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 53c4e4416b..3fecfc9ff0 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 c54983c77b..351e370c2c 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 d336d59641..9ffc2cf159 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 8de55945ce..6b0beee632 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 228c864b04..589d45c1a1 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 72a8078b81..4dc8bac073 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 fd3720cd51..41467a9cb0 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 77f1abda04..425840682d 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 f95b97ff87..4a1eda80e8 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 d0e8760ff6..3965be759a 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 4a3d615ce5..56dbe5d8be 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)); -- cgit v1.2.3