diff options
| author | Warner Losh <imp@FreeBSD.org> | 2024-11-30 19:36:15 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2024-11-30 19:38:23 +0000 |
| commit | 5d8674f2bdd536124b1dd026dfa729a1376b3cac (patch) | |
| tree | ade665e8d0ce42d3068d4b00dae9171f47f3cd06 /MdePkg/Library/BaseMemoryLibRepStr | |
| parent | 4a14dfcc1110b35118d5be8054fecf59ffb83032 (diff) | |
Diffstat (limited to 'MdePkg/Library/BaseMemoryLibRepStr')
11 files changed, 115 insertions, 111 deletions
diff --git a/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf b/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf index 221236ecec9d..1da279ff98a6 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +++ b/MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf @@ -33,6 +33,7 @@ ScanMem8Wrapper.c ZeroMemWrapper.c CompareMemWrapper.c + SetMemNWrapper.c SetMem64Wrapper.c SetMem32Wrapper.c SetMem16Wrapper.c @@ -53,17 +54,6 @@ Ia32/SetMem16.nasm Ia32/SetMem.nasm Ia32/CopyMem.nasm - Ia32/ScanMem64.nasm - Ia32/ScanMem32.nasm - Ia32/ScanMem16.nasm - Ia32/ScanMem8.nasm - Ia32/CompareMem.nasm - Ia32/ZeroMem.nasm - Ia32/SetMem64.nasm - Ia32/SetMem32.nasm - Ia32/SetMem16.nasm - Ia32/SetMem.nasm - Ia32/CopyMem.nasm Ia32/IsZeroBuffer.nasm [Sources.X64] @@ -78,17 +68,6 @@ X64/SetMem16.nasm X64/SetMem.nasm X64/CopyMem.nasm - X64/ScanMem64.nasm - X64/ScanMem32.nasm - X64/ScanMem16.nasm - X64/ScanMem8.nasm - X64/CompareMem.nasm - X64/ZeroMem.nasm - X64/SetMem64.nasm - X64/SetMem32.nasm - X64/SetMem16.nasm - X64/SetMem.nasm - X64/CopyMem.nasm X64/IsZeroBuffer.nasm [Packages] diff --git a/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c index c19d2140d2e4..2100dd52c922 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/CompareMemWrapper.c @@ -48,9 +48,10 @@ CompareMem ( IN UINTN Length ) { - if (Length == 0 || DestinationBuffer == SourceBuffer) { + if ((Length == 0) || (DestinationBuffer == SourceBuffer)) { return 0; } + ASSERT (DestinationBuffer != NULL); ASSERT (SourceBuffer != NULL); ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer)); diff --git a/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c index 9db53b0b5732..91dcad29501d 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/CopyMemWrapper.c @@ -47,11 +47,13 @@ CopyMem ( 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 (DestinationBuffer, SourceBuffer, Length); } diff --git a/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c b/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c index e214695ae96b..1462b0e9762a 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/MemLibGuid.c @@ -42,12 +42,12 @@ CopyGuid ( ) { WriteUnaligned64 ( - (UINT64*)DestinationGuid, - ReadUnaligned64 ((CONST UINT64*)SourceGuid) + (UINT64 *)DestinationGuid, + ReadUnaligned64 ((CONST UINT64 *)SourceGuid) ); WriteUnaligned64 ( - (UINT64*)DestinationGuid + 1, - ReadUnaligned64 ((CONST UINT64*)SourceGuid + 1) + (UINT64 *)DestinationGuid + 1, + ReadUnaligned64 ((CONST UINT64 *)SourceGuid + 1) ); return DestinationGuid; } @@ -80,12 +80,12 @@ CompareGuid ( UINT64 HighPartOfGuid1; UINT64 HighPartOfGuid2; - LowPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1); - LowPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2); - HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1); - HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1); + LowPartOfGuid1 = ReadUnaligned64 ((CONST UINT64 *)Guid1); + LowPartOfGuid2 = ReadUnaligned64 ((CONST UINT64 *)Guid2); + HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64 *)Guid1 + 1); + HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64 *)Guid2 + 1); - return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2); + return (BOOLEAN)(LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2); } /** @@ -118,20 +118,22 @@ ScanGuid ( IN CONST GUID *Guid ) { - CONST GUID *GuidPtr; + CONST GUID *GuidPtr; ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0); ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1)); ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0); - GuidPtr = (GUID*)Buffer; + GuidPtr = (GUID *)Buffer; Buffer = GuidPtr + Length / sizeof (*GuidPtr); - while (GuidPtr < (CONST GUID*)Buffer) { + while (GuidPtr < (CONST GUID *)Buffer) { if (CompareGuid (GuidPtr, Guid)) { - return (VOID*)GuidPtr; + return (VOID *)GuidPtr; } + GuidPtr++; } + return NULL; } @@ -158,8 +160,8 @@ IsZeroGuid ( UINT64 LowPartOfGuid; UINT64 HighPartOfGuid; - LowPartOfGuid = ReadUnaligned64 ((CONST UINT64*) Guid); - HighPartOfGuid = ReadUnaligned64 ((CONST UINT64*) Guid + 1); + LowPartOfGuid = ReadUnaligned64 ((CONST UINT64 *)Guid); + HighPartOfGuid = ReadUnaligned64 ((CONST UINT64 *)Guid + 1); - return (BOOLEAN) (LowPartOfGuid == 0 && HighPartOfGuid == 0); + return (BOOLEAN)(LowPartOfGuid == 0 && HighPartOfGuid == 0); } diff --git a/MdePkg/Library/BaseMemoryLibRepStr/MemLibInternals.h b/MdePkg/Library/BaseMemoryLibRepStr/MemLibInternals.h index ec1c440fcba4..ba3175c60b9a 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/MemLibInternals.h +++ b/MdePkg/Library/BaseMemoryLibRepStr/MemLibInternals.h @@ -35,9 +35,9 @@ VOID * EFIAPI InternalMemCopyMem ( - OUT VOID *DestinationBuffer, - IN CONST VOID *SourceBuffer, - IN UINTN Length + OUT VOID *DestinationBuffer, + IN CONST VOID *SourceBuffer, + IN UINTN Length ); /** @@ -53,9 +53,9 @@ InternalMemCopyMem ( VOID * EFIAPI InternalMemSetMem ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT8 Value + OUT VOID *Buffer, + IN UINTN Length, + IN UINT8 Value ); /** @@ -71,9 +71,9 @@ InternalMemSetMem ( VOID * EFIAPI InternalMemSetMem16 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT16 Value + OUT VOID *Buffer, + IN UINTN Length, + IN UINT16 Value ); /** @@ -89,9 +89,9 @@ InternalMemSetMem16 ( VOID * EFIAPI InternalMemSetMem32 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT32 Value + OUT VOID *Buffer, + IN UINTN Length, + IN UINT32 Value ); /** @@ -107,9 +107,9 @@ InternalMemSetMem32 ( VOID * EFIAPI InternalMemSetMem64 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT64 Value + OUT VOID *Buffer, + IN UINTN Length, + IN UINT64 Value ); /** @@ -124,8 +124,8 @@ InternalMemSetMem64 ( VOID * EFIAPI InternalMemZeroMem ( - OUT VOID *Buffer, - IN UINTN Length + OUT VOID *Buffer, + IN UINTN Length ); /** @@ -144,9 +144,9 @@ InternalMemZeroMem ( INTN EFIAPI InternalMemCompareMem ( - IN CONST VOID *DestinationBuffer, - IN CONST VOID *SourceBuffer, - IN UINTN Length + IN CONST VOID *DestinationBuffer, + IN CONST VOID *SourceBuffer, + IN UINTN Length ); /** @@ -163,9 +163,9 @@ InternalMemCompareMem ( CONST VOID * EFIAPI InternalMemScanMem8 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT8 Value + IN CONST VOID *Buffer, + IN UINTN Length, + IN UINT8 Value ); /** @@ -182,9 +182,9 @@ InternalMemScanMem8 ( CONST VOID * EFIAPI InternalMemScanMem16 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT16 Value + IN CONST VOID *Buffer, + IN UINTN Length, + IN UINT16 Value ); /** @@ -201,9 +201,9 @@ InternalMemScanMem16 ( CONST VOID * EFIAPI InternalMemScanMem32 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT32 Value + IN CONST VOID *Buffer, + IN UINTN Length, + IN UINT32 Value ); /** @@ -220,9 +220,9 @@ InternalMemScanMem32 ( CONST VOID * EFIAPI InternalMemScanMem64 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT64 Value + IN CONST VOID *Buffer, + IN UINTN Length, + IN UINT64 Value ); /** diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c index 1e284f5f13f3..dfddb9612868 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem16Wrapper.c @@ -57,5 +57,5 @@ ScanMem16 ( ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); ASSERT ((Length & (sizeof (Value) - 1)) == 0); - return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value); + return (VOID *)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value); } diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c index 758c14284599..63b774c4ce56 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem32Wrapper.c @@ -56,5 +56,5 @@ ScanMem32 ( ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); ASSERT ((Length & (sizeof (Value) - 1)) == 0); - return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value); + return (VOID *)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value); } diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c index 89a82fc52e73..ecd6b5a48e3a 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem64Wrapper.c @@ -57,5 +57,5 @@ ScanMem64 ( ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); ASSERT ((Length & (sizeof (Value) - 1)) == 0); - return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value); + return (VOID *)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value); } diff --git a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c index 7f1c7d220069..973edca9687f 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/ScanMem8Wrapper.c @@ -49,10 +49,11 @@ ScanMem8 ( if (Length == 0) { return NULL; } + ASSERT (Buffer != NULL); ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); - return (VOID*)InternalMemScanMem8 (Buffer, Length, Value); + return (VOID *)InternalMemScanMem8 (Buffer, Length, Value); } /** @@ -90,4 +91,3 @@ ScanMemN ( return ScanMem32 (Buffer, Length, (UINT32)Value); } } - diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMemNWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMemNWrapper.c new file mode 100644 index 000000000000..402e88a5d557 --- /dev/null +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMemNWrapper.c @@ -0,0 +1,54 @@ +/** @file + SetMemN() implementation. + + The following BaseMemoryLib instances contain the same copy of this file: + + BaseMemoryLib + BaseMemoryLibMmx + BaseMemoryLibSse2 + BaseMemoryLibRepStr + BaseMemoryLibOptDxe + BaseMemoryLibOptPei + PeiMemoryLib + UefiMemoryLib + + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "MemLibInternals.h" + +/** + Fills a target buffer with a value that is size UINTN, and returns the target buffer. + + This function fills Length bytes of Buffer with the UINTN sized value specified by + Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length + bytes of Buffer. + + 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 UINTN boundary, then ASSERT(). + If Length is not aligned on a UINTN boundary, then ASSERT(). + + @param Buffer The pointer to the target buffer to fill. + @param Length The number of bytes in Buffer to fill. + @param Value The value with which to fill Length bytes of Buffer. + + @return Buffer. + +**/ +VOID * +EFIAPI +SetMemN ( + OUT VOID *Buffer, + IN UINTN Length, + IN UINTN Value + ) +{ + if (sizeof (UINTN) == sizeof (UINT64)) { + return SetMem64 (Buffer, Length, (UINT64)Value); + } else { + return SetMem32 (Buffer, Length, (UINT32)Value); + } +} diff --git a/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c b/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c index ac6402fa34a9..e6c8d3c72162 100644 --- a/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c +++ b/MdePkg/Library/BaseMemoryLibRepStr/SetMemWrapper.c @@ -1,5 +1,5 @@ /** @file - SetMem() and SetMemN() implementation. + SetMem() implementation. The following BaseMemoryLib instances contain the same copy of this file: @@ -49,37 +49,3 @@ SetMem ( return InternalMemSetMem (Buffer, Length, Value); } - -/** - Fills a target buffer with a value that is size UINTN, and returns the target buffer. - - This function fills Length bytes of Buffer with the UINTN sized value specified by - Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length - bytes of Buffer. - - 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 UINTN boundary, then ASSERT(). - If Length is not aligned on a UINTN boundary, then ASSERT(). - - @param Buffer The pointer to the target buffer to fill. - @param Length The number of bytes in Buffer to fill. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMemN ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINTN Value - ) -{ - if (sizeof (UINTN) == sizeof (UINT64)) { - return SetMem64 (Buffer, Length, (UINT64)Value); - } else { - return SetMem32 (Buffer, Length, (UINT32)Value); - } -} |
