X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FLibrary%2FMemoryAllocationLib.h;h=a2aafcfd7ac9a20b0a34d06d18053abe080db1b0;hp=bb2c7243799179c472422007c362f9bf5cac9101;hb=511710d68f477e0210ae1830769e5d0cde4ea36a;hpb=24e25d11c0460dfb39fade685375c0e58cbcb40e diff --git a/MdePkg/Include/Library/MemoryAllocationLib.h b/MdePkg/Include/Library/MemoryAllocationLib.h index bb2c724379..a2aafcfd7a 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. + + 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. - @param Pages The number of 4 KB pages 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. - If there is not enough memory remaining to satisfy the request, then NULL is returned. + @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. - - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. - - None. + Frees one or more 4KB pages that were previously allocated with one of the page allocation + functions in the Memory Allocation Library. + + 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. + + 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(). - @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. + @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 - 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. + @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(). + + @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 - 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. + @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. - - @param Buffer Pointer to the buffer of pages to free. - @param Pages The number of 4 KB pages to free. - - None. + Frees one or more 4KB pages that were previously allocated with one of the aligned page + allocation functions in the Memory Allocation Library. + + 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. + + @param AllocationSize The number of bytes to allocate. - @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. + @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. + + @param AllocationSize The number of bytes to allocate and zero. - @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. + @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. + + @param AllocationSize The number of bytes to allocate and zero. - @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. + @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. + + 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(). - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + @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. 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 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. + + 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(). - @param AllocationSize The number of bytes to allocate. - @param Buffer The buffer to copy to the allocated buffer. + @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. 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 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(). + + @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. 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 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(). + + @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. 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 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(). + + @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. 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 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. + + 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(). - @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. + @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. 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 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(). + + @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. 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 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(). + + @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. 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 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