diff --git a/MdePkg/Include/Library/MemoryAllocationLib.h b/MdePkg/Include/Library/MemoryAllocationLib.h index bb2c724379..d8bbe38387 100644 --- a/MdePkg/Include/Library/MemoryAllocationLib.h +++ b/MdePkg/Include/Library/MemoryAllocationLib.h @@ -18,67 +18,75 @@ #define __MEMORY_ALLOCATION_LIB_H__ /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData. + Allocates one or more 4KB pages of type EfiBootServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiBootServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return - A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocatePages ( IN UINTN Pages - ) -; + ); /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData. + Allocates one or more 4KB pages of type EfiRuntimeServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return - A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateRuntimePages ( IN UINTN Pages - ) -; + ); /** - Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType. + Allocates one or more 4KB pages of type EfiReservedMemoryType. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiReservedMemoryType and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return - A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateReservedPages ( IN UINTN Pages - ) -; + ); /** - Frees one or more 4KB pages that were previously allocated with - one of the page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the page allocation + functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. - - None. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with a page allocation function in the Memory Allocation Library, + then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -86,19 +94,22 @@ EFIAPI FreePages ( IN VOID *Buffer, IN UINTN Pages - ) -; + ); /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiBootServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -106,19 +117,22 @@ EFIAPI AllocateAlignedPages ( IN UINTN Pages, IN UINTN Alignment - ) -; + ); /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiRuntimeServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -126,19 +140,22 @@ EFIAPI AllocateAlignedRuntimePages ( IN UINTN Pages, IN UINTN Alignment - ) -; + ); /** Allocates one or more 4KB pages of type EfiReservedMemoryType at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -146,17 +163,21 @@ EFIAPI AllocateAlignedReservedPages ( IN UINTN Pages, IN UINTN Alignment - ) -; + ); /** - Frees one or more 4KB pages that were previously allocated with - one of the aligned page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the aligned page + allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. - - None. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the aligned page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with an aligned page allocation function in the Memory Allocation + Library, then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -164,120 +185,133 @@ EFIAPI FreeAlignedPages ( IN VOID *Buffer, IN UINTN Pages - ) -; + ); /** Allocates a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData and returns a + pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocatePool ( IN UINTN AllocationSize - ) -; + ); /** Allocates a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateRuntimePool ( IN UINTN AllocationSize - ) -; + ); /** - Allocates a buffer of type EfiReservedMemoryType. + Allocates a buffer of type EfieservedMemoryType. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateReservedPool ( IN UINTN AllocationSize - ) -; + ); /** Allocates and zeros a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateZeroPool ( IN UINTN AllocationSize - ) -; + ); /** Allocates and zeros a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateRuntimeZeroPool ( IN UINTN AllocationSize - ) -; + ); /** Allocates and zeros a buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * EFIAPI AllocateReservedZeroPool ( IN UINTN AllocationSize - ) -; + ); /** - Copies a buffer to an allocated buffer of type EfiBootServicesData. + Copies a buffer to an allocated buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -285,18 +319,22 @@ EFIAPI AllocateCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer - ) -; + ); /** - Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. + Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -304,18 +342,22 @@ EFIAPI AllocateRuntimeCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer - ) -; + ); /** - Copies a buffer to an allocated buffer of type EfiReservedMemoryType. + Copies a buffer to an allocated buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -323,35 +365,40 @@ EFIAPI AllocateReservedCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer - ) -; + ); /** - Frees a buffer that was previously allocated with one of the pool allocation functions - in the Memory Allocation Library. + Frees a buffer that was previously allocated with one of the pool allocation functions in the + Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, + then ASSERT(). - None. + @param Buffer Pointer to the buffer to free. **/ VOID EFIAPI FreePool ( IN VOID *Buffer - ) -; + ); /** Allocates a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -359,19 +406,22 @@ EFIAPI AllocateAlignedPool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** Allocates a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -379,19 +429,22 @@ EFIAPI AllocateAlignedRuntimePool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** - Allocates a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -399,19 +452,23 @@ EFIAPI AllocateAlignedReservedPool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** Allocates and zeros a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -419,19 +476,23 @@ EFIAPI AllocateAlignedZeroPool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** Allocates and zeros a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -439,19 +500,23 @@ EFIAPI AllocateAlignedRuntimeZeroPool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** - Allocates and zeros a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates and zeros a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -459,20 +524,23 @@ EFIAPI AllocateAlignedReservedZeroPool ( IN UINTN AllocationSize, IN UINTN Alignment - ) -; + ); /** Copies a buffer to an allocated buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -481,20 +549,23 @@ AllocateAlignedCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer, IN UINTN Alignment - ) -; + ); /** Copies a buffer to an allocated buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -503,20 +574,23 @@ AllocateAlignedRuntimeCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer, IN UINTN Alignment - ) -; + ); /** Copies a buffer to an allocated buffer of type EfiReservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -525,23 +599,24 @@ AllocateAlignedReservedCopyPool ( IN UINTN AllocationSize, IN CONST VOID *Buffer, IN UINTN Alignment - ) -; + ); /** Frees a buffer that was previously allocated with one of the aligned pool allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + aligned pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with an aligned pool allocation function in the Memory Allocation + Library, then ASSERT(). - None. + @param Buffer Pointer to the buffer to free. **/ VOID EFIAPI FreeAlignedPool ( IN VOID *Buffer - ) -; + ); #endif diff --git a/MdePkg/Library/BasePciExpressLib/PciLib.c b/MdePkg/Library/BasePciExpressLib/PciLib.c index 771c18f811..509a5e423f 100644 --- a/MdePkg/Library/BasePciExpressLib/PciLib.c +++ b/MdePkg/Library/BasePciExpressLib/PciLib.c @@ -31,8 +31,16 @@ ASSERT (((A) & ~0xfffffff) == 0) +/** + Gets the base address of PCI Express. + + This internal functions retrieves PCI Express Base Address via a PCD entry + PcdPciExpressBaseAddress. + + @return The base address of PCI Express. + +**/ UINTN -EFIAPI GetPciExpressBaseAddress ( VOID ) diff --git a/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c index 15a419bc56..36acc1ab9c 100644 --- a/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/DxeMemoryAllocationLib/MemoryAllocationLib.c @@ -15,17 +15,18 @@ **/ - /** - Allocates the number of 4KB pages specified by Pages of a certain memory type. + Allocates one or more 4KB pages of a certain memory type. - @param MemoryType The type of memory to allocate. - @param Pages The number of 4 KB pages to allocate. - - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary.
- If Pages is 0, then NULL is returned.
+ Allocates the number of 4KB pages of a certain memory type and returns a pointer to the allocated + buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL is returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. + **/ VOID * InternalAllocatePages ( @@ -48,13 +49,16 @@ InternalAllocatePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData. + Allocates one or more 4KB pages of type EfiBootServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiBootServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary.
- If Pages is 0, then NULL is returned.
- If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -67,13 +71,16 @@ AllocatePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData. + Allocates one or more 4KB pages of type EfiRuntimeServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary.
- If Pages is 0, then NULL is returned.
- If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -86,13 +93,16 @@ AllocateRuntimePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType. + Allocates one or more 4KB pages of type EfiReservedMemoryType. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiReservedMemoryType and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary.
- If Pages is 0, then NULL is returned.
- If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -105,11 +115,18 @@ AllocateReservedPages ( } /** - Frees one or more 4KB pages that were previously allocated with - one of the page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the page allocation + functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with a page allocation function in the Memory Allocation Library, + then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -127,17 +144,20 @@ FreePages ( } /** - Allocates the number of 4KB pages specified by Pages of a certian memory type - with an alignment specified by Alignment. + Allocates one or more 4KB pages of a certain memory type at a specified alignment. - @param MemoryType The type of memory to allocate. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of a certain memory type with an alignment + specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is returned. + If there is not enough memory at the specified alignment remaining to satisfy the request, then + NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned.
- If Pages is 0, then NULL is returned.
- If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -209,16 +229,19 @@ InternalAllocateAlignedPages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData - with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiBootServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned.
- If Pages is 0, then NULL is returned.
- If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -232,15 +255,19 @@ AllocateAlignedPages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData - with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiRuntimeServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -256,12 +283,17 @@ AllocateAlignedRuntimePages ( /** Allocates one or more 4KB pages of type EfiReservedMemoryType at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -275,11 +307,18 @@ AllocateAlignedReservedPages ( } /** - Frees one or more 4KB pages that were previously allocated with - one of the aligned page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the aligned page + allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the aligned page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with an aligned page allocation function in the Memory Allocation + Library, then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -297,13 +336,16 @@ FreeAlignedPages ( } /** - Allocates a buffer of a certain memory type. + Allocates a buffer of a certain pool type. - @param MemoryType The type of memory to allocate. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of a certain pool type and returns a + pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -325,10 +367,13 @@ InternalAllocatePool ( /** Allocates a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData and returns a + pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -343,10 +388,13 @@ AllocatePool ( /** Allocates a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -359,12 +407,15 @@ AllocateRuntimePool ( } /** - Allocates a buffer of type EfiReservedMemoryType. + Allocates a buffer of type EfieservedMemoryType. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -379,11 +430,15 @@ AllocateReservedPool ( /** Allocates and zeros a buffer of a certian pool type. - @param PoolType The type of memory to allocate. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of a certian pool type, clears the buffer + with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory remaining to satisfy the request, + then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of memory to allocate. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -393,6 +448,7 @@ InternalAllocateZeroPool ( ) { VOID *Memory; + Memory = InternalAllocatePool (PoolType, AllocationSize); if (Memory != NULL) { Memory = ZeroMem (Memory, AllocationSize); @@ -403,10 +459,14 @@ InternalAllocateZeroPool ( /** Allocates and zeros a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -421,10 +481,14 @@ AllocateZeroPool ( /** Allocates and zeros a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -439,10 +503,14 @@ AllocateRuntimeZeroPool ( /** Allocates and zeros a buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -455,14 +523,20 @@ AllocateReservedZeroPool ( } /** - Copies a buffer to an allocated buffer of a certian memory type. + Copies a buffer to an allocated buffer of a certian pool type. - @param MemoryType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate and zero. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of a certian pool type, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -485,13 +559,19 @@ InternalAllocateCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiBootServicesData. + Copies a buffer to an allocated buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -505,13 +585,19 @@ AllocateCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. + Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -525,13 +611,19 @@ AllocateRuntimeCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiReservedMemoryType. + Copies a buffer to an allocated buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -545,9 +637,15 @@ AllocateReservedCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiReservedMemoryType at a specified alignment. + Frees a buffer that was previously allocated with one of the pool allocation functions in the + Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, + then ASSERT(). + + @param Buffer Pointer to the buffer to free. **/ VOID @@ -565,12 +663,18 @@ FreePool ( /** Allocates a buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory at the specified alignment remaining + to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -624,11 +728,17 @@ InternalAllocateAlignedPool ( /** Allocates a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -644,12 +754,17 @@ AllocateAlignedPool ( /** Allocates a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -663,14 +778,19 @@ AllocateAlignedRuntimePool ( } /** - Allocates a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -684,15 +804,20 @@ AllocateAlignedReservedPool ( } /** - Allocates and zeros a buffer of type EfiBootServicesData at a specified alignment. + Allocates and zeros a buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment, clears the buffer with zeros, and returns a pointer to the allocated + buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there is not + enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -713,12 +838,18 @@ InternalAllocateAlignedZeroPool ( /** Allocates and zeros a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -734,12 +865,18 @@ AllocateAlignedZeroPool ( /** Allocates and zeros a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -753,14 +890,20 @@ AllocateAlignedRuntimeZeroPool ( } /** - Allocates and zeros a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates and zeros a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -774,16 +917,21 @@ AllocateAlignedReservedZeroPool ( } /** - Copies a buffer to an allocated buffer of type EfiBootServicesData at a specified alignment. + Copies a buffer to an allocated buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory at the specified alignment remaining + to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -809,13 +957,18 @@ InternalAllocateAlignedCopyPool ( /** Copies a buffer to an allocated buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -832,13 +985,18 @@ AllocateAlignedCopyPool ( /** Copies a buffer to an allocated buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -855,13 +1013,18 @@ AllocateAlignedRuntimeCopyPool ( /** Copies a buffer to an allocated buffer of type EfiReservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -879,7 +1042,12 @@ AllocateAlignedReservedCopyPool ( Frees a buffer that was previously allocated with one of the aligned pool allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + aligned pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with an aligned pool allocation function in the Memory Allocation + Library, then ASSERT(). + + @param Buffer Pointer to the buffer to free. **/ VOID diff --git a/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c index 59e9a26238..b4f84cb4d2 100644 --- a/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c +++ b/MdePkg/Library/PeiMemoryAllocationLib/MemoryAllocationLib.c @@ -15,17 +15,18 @@ **/ - /** - Allocates the number of 4KB pages specified by Pages of a certain memory type. + Allocates one or more 4KB pages of a certain memory type. - @param MemoryType The type of memory to allocate. - @param Pages The number of 4 KB pages to allocate. - - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. + Allocates the number of 4KB pages of a certain memory type and returns a pointer to the allocated + buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL is returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. + **/ VOID * InternalAllocatePages ( @@ -50,13 +51,16 @@ InternalAllocatePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData. + Allocates one or more 4KB pages of type EfiBootServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiBootServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -69,13 +73,16 @@ AllocatePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData. + Allocates one or more 4KB pages of type EfiRuntimeServicesData. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiRuntimeServicesData and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -88,13 +95,16 @@ AllocateRuntimePages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType. + Allocates one or more 4KB pages of type EfiReservedMemoryType. - @param Pages The number of 4 KB pages to allocate. + Allocates the number of 4KB pages of type EfiReservedMemoryType and returns a pointer to the + allocated buffer. The buffer returned is aligned on a 4KB boundary. If Pages is 0, then NULL + is returned. If there is not enough memory remaining to satisfy the request, then NULL is + returned. - @return A pointer to the allocated buffer. The buffer returned is aligned on a 4KB boundary. - If Pages is 0, then NULL is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -107,11 +117,18 @@ AllocateReservedPages ( } /** - Frees one or more 4KB pages that were previously allocated with - one of the page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the page allocation + functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with a page allocation function in the Memory Allocation Library, + then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -127,16 +144,20 @@ FreePages ( } /** - Allocates the number of 4KB pages specified by Pages of a certian memory type - with an alignment specified by Alignment. + Allocates one or more 4KB pages of a certain memory type at a specified alignment. - @param MemoryType The type of memory to allocate. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of a certain memory type with an alignment + specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is returned. + If there is not enough memory at the specified alignment remaining to satisfy the request, then + NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -174,15 +195,19 @@ InternalAllocateAlignedPages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData - with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiBootServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -196,15 +221,19 @@ AllocateAlignedPages ( } /** - Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData - with an alignment specified by Alignment. + Allocates one or more 4KB pages of type EfiRuntimeServicesData at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -220,12 +249,17 @@ AllocateAlignedRuntimePages ( /** Allocates one or more 4KB pages of type EfiReservedMemoryType at a specified alignment. - @param Pages The number of 4 KB pages to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number of 4KB pages specified by Pages of type EfiReservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If Pages is 0, then NULL is + returned. If there is not enough memory at the specified alignment remaining to satisfy the + request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return The allocated buffer is returned. If Pages is 0, then NULL is returned. - If there is not enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + @param Pages The number of 4 KB pages to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -239,11 +273,18 @@ AllocateAlignedReservedPages ( } /** - Frees one or more 4KB pages that were previously allocated with - one of the aligned page allocation functions in the Memory Allocation Library. + Frees one or more 4KB pages that were previously allocated with one of the aligned page + allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. + Frees the number of 4KB pages specified by Pages from the buffer specified by Buffer. Buffer + must have been allocated on a previous call to the aligned page allocation services of the Memory + Allocation Library. + If Buffer was not allocated with an aligned page allocation function in the Memory Allocation + Library, then ASSERT(). + If Pages is zero, then ASSERT(). + + @param Buffer Pointer to the buffer of pages to free. + @param Pages The number of 4 KB pages to free. **/ VOID @@ -259,13 +300,16 @@ FreeAlignedPages ( } /** - Allocates a buffer of a certain memory type. + Allocates a buffer of a certain pool type. - @param MemoryType The type of memory to allocate. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of a certain pool type and returns a + pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param MemoryType The type of memory to allocate. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -285,10 +329,13 @@ InternalAllocatePool ( /** Allocates a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData and returns a + pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -313,10 +360,13 @@ AllocatePool ( /** Allocates a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -329,12 +379,15 @@ AllocateRuntimePool ( } /** - Allocates a buffer of type EfiReservedMemoryType. + Allocates a buffer of type EfieservedMemoryType. - @param AllocationSize The number of bytes to allocate. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType and returns + a pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is + returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -349,11 +402,15 @@ AllocateReservedPool ( /** Allocates and zeros a buffer of a certian pool type. - @param PoolType The type of memory to allocate. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of a certian pool type, clears the buffer + with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory remaining to satisfy the request, + then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of memory to allocate. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -374,10 +431,14 @@ InternalAllocateZeroPool ( /** Allocates and zeros a buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -398,10 +459,14 @@ AllocateZeroPool ( /** Allocates and zeros a buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -416,10 +481,14 @@ AllocateRuntimeZeroPool ( /** Allocates and zeros a buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate and zero. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, clears the + buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a + valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the + request, then NULL is returned. - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -432,14 +501,20 @@ AllocateReservedZeroPool ( } /** - Copies a buffer to an allocated buffer of a certian memory type. + Copies a buffer to an allocated buffer of a certian pool type. - @param MemoryType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate and zero. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of a certian pool type, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -462,13 +537,19 @@ InternalAllocateCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiBootServicesData. + Copies a buffer to an allocated buffer of type EfiBootServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -491,13 +572,19 @@ AllocateCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. + Copies a buffer to an allocated buffer of type EfiRuntimeServicesData. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -511,13 +598,19 @@ AllocateRuntimeCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiReservedMemoryType. + Copies a buffer to an allocated buffer of type EfiReservedMemoryType. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType, copies + AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory remaining to satisfy the request, then NULL is returned. + If Buffer is NULL, then ASSERT(). + If AllocationSize is greater than (MAX_ADDRESS – Buffer + 1), then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate and zero. + @param Buffer The buffer to copy to the allocated buffer. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -531,9 +624,15 @@ AllocateReservedCopyPool ( } /** - Copies a buffer to an allocated buffer of type EfiReservedMemoryType at a specified alignment. + Frees a buffer that was previously allocated with one of the pool allocation functions in the + Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, + then ASSERT(). + + @param Buffer Pointer to the buffer to free. **/ VOID @@ -550,12 +649,18 @@ FreePool ( /** Allocates a buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory at the specified alignment remaining + to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -594,11 +699,17 @@ InternalAllocateAlignedPool ( /** Allocates a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -638,12 +749,17 @@ AllocateAlignedPool ( /** Allocates a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -657,14 +773,19 @@ AllocateAlignedRuntimePool ( } /** - Allocates a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -678,15 +799,20 @@ AllocateAlignedReservedPool ( } /** - Allocates and zeros a buffer of type EfiBootServicesData at a specified alignment. + Allocates and zeros a buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment, clears the buffer with zeros, and returns a pointer to the allocated + buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there is not + enough memory at the specified alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -708,12 +834,18 @@ InternalAllocateAlignedZeroPool ( /** Allocates and zeros a buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -735,12 +867,18 @@ AllocateAlignedZeroPool ( /** Allocates and zeros a buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -754,14 +892,20 @@ AllocateAlignedRuntimeZeroPool ( } /** - Allocates and zeros a buffer of type EfiReservedMemoryType at a specified alignment. + Allocates and zeros a buffer of type EfieservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfieservedMemoryType with an + alignment specified by Alignment, clears the buffer with zeros, and returns a pointer to the + allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there + is not enough memory at the specified alignment remaining to satisfy the request, then NULL is + returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -775,16 +919,21 @@ AllocateAlignedReservedZeroPool ( } /** - Copies a buffer to an allocated buffer of type EfiBootServicesData at a specified alignment. + Copies a buffer to an allocated buffer of a certain pool type at a specified alignment. - @param PoolType The type of pool to allocate. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of a certain pool type with an alignment + specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, then a valid + buffer of 0 size is returned. If there is not enough memory at the specified alignment remaining + to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param PoolType The type of pool to allocate. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -810,13 +959,18 @@ InternalAllocateAlignedCopyPool ( /** Copies a buffer to an allocated buffer of type EfiBootServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiBootServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -842,13 +996,18 @@ AllocateAlignedCopyPool ( /** Copies a buffer to an allocated buffer of type EfiRuntimeServicesData at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiRuntimeServicesData type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -865,13 +1024,18 @@ AllocateAlignedRuntimeCopyPool ( /** Copies a buffer to an allocated buffer of type EfiReservedMemoryType at a specified alignment. - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. - @param Alignment The requested alignment of the allocation. Must be a power of two. - If Alignment is zero, then byte alignment is used. + Allocates the number bytes specified by AllocationSize of type EfiReservedMemoryType type with an + alignment specified by Alignment. The allocated buffer is returned. If AllocationSize is 0, + then a valid buffer of 0 size is returned. If there is not enough memory at the specified + alignment remaining to satisfy the request, then NULL is returned. + If Alignment is not a power of two and Alignment is not zero, then ASSERT(). - @return A pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @param AllocationSize The number of bytes to allocate. + @param Buffer The buffer to copy to the allocated buffer. + @param Alignment The requested alignment of the allocation. Must be a power of two. + If Alignment is zero, then byte alignment is used. + + @return A pointer to the allocated buffer or NULL if allocation fails. **/ VOID * @@ -889,7 +1053,12 @@ AllocateAlignedReservedCopyPool ( Frees a buffer that was previously allocated with one of the aligned pool allocation functions in the Memory Allocation Library. - @param Buffer Pointer to the buffer to free. + Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the + aligned pool allocation services of the Memory Allocation Library. + If Buffer was not allocated with an aligned pool allocation function in the Memory Allocation + Library, then ASSERT(). + + @param Buffer Pointer to the buffer to free. **/ VOID diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c index 5faa08de76..7797608b13 100644 --- a/MdePkg/Library/UefiLib/UefiNotTiano.c +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c @@ -21,7 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. /** An empty function to pass error checking of CreateEventEx (). - This empty function enusres that EFI_EVENT_NOTIFY_SIGNAL_ALL is error + This empty function ensures that EFI_EVENT_NOTIFY_SIGNAL_ALL is error checked correctly since it is now mapped into CreateEventEx() in UEFI 2.0. **/ diff --git a/MdePkg/MdePkg.fpd b/MdePkg/MdePkg.fpd index 9114135546..7cb1e01b8c 100644 --- a/MdePkg/MdePkg.fpd +++ b/MdePkg/MdePkg.fpd @@ -434,12 +434,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. LIBRARY - - - NULL - LIBRARY - - NULL @@ -1010,12 +1004,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. LIBRARY - - - NULL - LIBRARY - - NULL @@ -1592,12 +1580,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. LIBRARY - - - NULL - LIBRARY - - NULL @@ -2168,12 +2150,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. LIBRARY - - - NULL - LIBRARY - - NULL diff --git a/MdePkg/MdePkg.spd b/MdePkg/MdePkg.spd index 5be668583d..7f29b355ed 100644 --- a/MdePkg/MdePkg.spd +++ b/MdePkg/MdePkg.spd @@ -1154,7 +1154,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Library/BasePostCodeLibPort80/BasePostCodeLibPort80.msa Library/BasePostCodeLibDebug/BasePostCodeLibDebug.msa Library/PeiDxePostCodeLibReportStatusCode/PeiDxePostCodeLibReportStatusCode.msa - Library/BaseSmbusLib/BaseSmbusLib.msa Library/PeiSmbusLib/PeiSmbusLib.msa Library/DxeSmbusLib/DxeSmbusLib.msa Library/BaseUefiDecompressLib/BaseUefiDecompressLib.msa