24#include <Library/EmuThunkLib.h>
40InternalAllocatePages (
52 return gEmuThunk->Valloc (Pages * EFI_PAGE_SIZE);
148 if (!gEmuThunk->Free (Buffer)) {
185 UINTN UnalignedPages;
191 ASSERT ((Alignment & (Alignment - 1)) == 0);
197 if (Alignment > EFI_PAGE_SIZE) {
201 AlignmentMask = Alignment - 1;
206 ASSERT (RealPages > Pages);
208 Memory = gEmuThunk->Valloc (Pages * EFI_PAGE_SIZE);
209 if (Memory !=
NULL) {
213 AlignedMemory = ((
UINTN)Memory + AlignmentMask) & ~AlignmentMask;
215 if (UnalignedPages > 0) {
223 UnalignedPages = RealPages - Pages - UnalignedPages;
224 if (UnalignedPages > 0) {
234 Memory = gEmuThunk->Valloc (Pages * EFI_PAGE_SIZE);
235 if (Memory !=
NULL) {
239 AlignedMemory = (
UINTN)Memory;
242 return (VOID *)AlignedMemory;
372 return gEmuThunk->Malloc (AllocationSize);
461 if (Memory !=
NULL) {
462 Memory =
ZeroMem (Memory, AllocationSize);
560 ASSERT (Buffer !=
NULL);
564 if (Memory !=
NULL) {
565 Memory =
CopyMem (Memory, Buffer, AllocationSize);
679 IN VOID *OldBuffer OPTIONAL
685 if ((NewBuffer !=
NULL) && (OldBuffer !=
NULL)) {
686 CopyMem (NewBuffer, OldBuffer,
MIN (OldSize, NewSize));
719 IN VOID *OldBuffer OPTIONAL
751 IN VOID *OldBuffer OPTIONAL
783 IN VOID *OldBuffer OPTIONAL
811 if (!gEmuThunk->Free (Buffer)) {
815 Status =
gBS->FreePool (Buffer);
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
VOID EFIAPI FreePages(IN VOID *Buffer, IN UINTN Pages)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
VOID *EFIAPI AllocateAlignedPages(IN UINTN Pages, IN UINTN Alignment)
VOID *EFIAPI AllocatePages(IN UINTN Pages)
VOID *EFIAPI ReallocatePool(IN UINTN OldSize, IN UINTN NewSize, IN VOID *OldBuffer OPTIONAL)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateRuntimePages(IN UINTN Pages)
VOID *EFIAPI AllocateReservedZeroPool(IN UINTN AllocationSize)
VOID *EFIAPI AllocateRuntimePool(IN UINTN AllocationSize)
VOID *EFIAPI ReallocateRuntimePool(IN UINTN OldSize, IN UINTN NewSize, IN VOID *OldBuffer OPTIONAL)
VOID * InternalReallocatePool(IN EFI_MEMORY_TYPE PoolType, IN UINTN OldSize, IN UINTN NewSize, IN VOID *OldBuffer OPTIONAL)
VOID *EFIAPI AllocateAlignedReservedPages(IN UINTN Pages, IN UINTN Alignment)
VOID *EFIAPI AllocateRuntimeCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
VOID *EFIAPI ReallocateReservedPool(IN UINTN OldSize, IN UINTN NewSize, IN VOID *OldBuffer OPTIONAL)
VOID * InternalAllocateCopyPool(IN EFI_MEMORY_TYPE PoolType, IN UINTN AllocationSize, IN CONST VOID *Buffer)
VOID *EFIAPI AllocateReservedPool(IN UINTN AllocationSize)
VOID EFIAPI FreeAlignedPages(IN VOID *Buffer, IN UINTN Pages)
VOID *EFIAPI AllocateAlignedRuntimePages(IN UINTN Pages, IN UINTN Alignment)
VOID *EFIAPI AllocateReservedPages(IN UINTN Pages)
VOID * InternalAllocatePool(IN EFI_MEMORY_TYPE MemoryType, IN UINTN AllocationSize)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
VOID *EFIAPI AllocateRuntimeZeroPool(IN UINTN AllocationSize)
VOID * InternalAllocateAlignedPages(IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN UINTN Alignment)
VOID * InternalAllocateZeroPool(IN EFI_MEMORY_TYPE PoolType, IN UINTN AllocationSize)
VOID *EFIAPI AllocateReservedCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
#define ASSERT_EFI_ERROR(StatusParameter)
UINT64 EFI_PHYSICAL_ADDRESS
#define EFI_PAGES_TO_SIZE(Pages)
#define EFI_SIZE_TO_PAGES(Size)