TianoCore EDK2 master
|
#include <Uefi.h>
#include <Library/DebugLib.h>
#include <Library/DmaLib.h>
#include <Library/MemoryAllocationLib.h>
Go to the source code of this file.
Functions | |
STATIC PHYSICAL_ADDRESS | HostToDeviceAddress (IN VOID *Address) |
EFI_STATUS EFIAPI | DmaMap (IN DMA_MAP_OPERATION Operation, IN VOID *HostAddress, IN OUT UINTN *NumberOfBytes, OUT PHYSICAL_ADDRESS *DeviceAddress, OUT VOID **Mapping) |
EFI_STATUS EFIAPI | DmaUnmap (IN VOID *Mapping) |
EFI_STATUS EFIAPI | DmaAllocateBuffer (IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, OUT VOID **HostAddress) |
EFI_STATUS EFIAPI | DmaAllocateAlignedBuffer (IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN UINTN Alignment, OUT VOID **HostAddress) |
EFI_STATUS EFIAPI | DmaFreeBuffer (IN UINTN Pages, IN VOID *HostAddress) |
Generic ARM implementation of DmaLib.h
Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file CoherentDmaLib.c.
EFI_STATUS EFIAPI DmaAllocateAlignedBuffer | ( | IN EFI_MEMORY_TYPE | MemoryType, |
IN UINTN | Pages, | ||
IN UINTN | Alignment, | ||
OUT VOID ** | HostAddress | ||
) |
Allocates pages that are suitable for an DmaMap() of type MapOperationBusMasterCommonBuffer mapping, at the requested alignment.
MemoryType | The type of memory to allocate, EfiBootServicesData or EfiRuntimeServicesData. |
Pages | The number of pages to allocate. |
Alignment | Alignment in bytes of the base of the returned buffer (must be a power of 2) |
HostAddress | A pointer to store the base system memory address of the allocated range. |
EFI_SUCCESS | The requested memory pages were allocated. |
EFI_UNSUPPORTED | Attributes is unsupported. The only legal attribute bits are MEMORY_WRITE_COMBINE and MEMORY_CACHED. |
EFI_INVALID_PARAMETER | One or more parameters are invalid. |
EFI_OUT_OF_RESOURCES | The memory pages could not be allocated. |
Definition at line 135 of file CoherentDmaLib.c.
EFI_STATUS EFIAPI DmaAllocateBuffer | ( | IN EFI_MEMORY_TYPE | MemoryType, |
IN UINTN | Pages, | ||
OUT VOID ** | HostAddress | ||
) |
Allocates pages that are suitable for an DmaMap() of type MapOperationBusMasterCommonBuffer. mapping.
MemoryType | The type of memory to allocate, EfiBootServicesData or EfiRuntimeServicesData. |
Pages | The number of pages to allocate. |
HostAddress | A pointer to store the base system memory address of the allocated range. |
EFI_SUCCESS | The requested memory pages were allocated. |
EFI_UNSUPPORTED | Attributes is unsupported. The only legal attribute bits are MEMORY_WRITE_COMBINE and MEMORY_CACHED. |
EFI_INVALID_PARAMETER | One or more parameters are invalid. |
EFI_OUT_OF_RESOURCES | The memory pages could not be allocated. |
Definition at line 105 of file CoherentDmaLib.c.
EFI_STATUS EFIAPI DmaFreeBuffer | ( | IN UINTN | Pages, |
IN VOID * | HostAddress | ||
) |
Frees memory that was allocated with DmaAllocateBuffer().
Pages | The number of pages to free. |
HostAddress | The base system memory address of the allocated range. |
EFI_SUCCESS | The requested memory pages were freed. |
EFI_INVALID_PARAMETER | The memory range specified by HostAddress and Pages was not allocated with DmaAllocateBuffer(). |
Definition at line 183 of file CoherentDmaLib.c.
EFI_STATUS EFIAPI DmaMap | ( | IN DMA_MAP_OPERATION | Operation, |
IN VOID * | HostAddress, | ||
IN OUT UINTN * | NumberOfBytes, | ||
OUT PHYSICAL_ADDRESS * | DeviceAddress, | ||
OUT VOID ** | Mapping | ||
) |
Provides the DMA controller-specific addresses needed to access system memory.
Operation is relative to the DMA bus master.
Operation | Indicates if the bus master is going to read or write to system memory. |
HostAddress | The system memory address to map to the DMA controller. |
NumberOfBytes | On input the number of bytes to map. On output the number of bytes that were mapped. |
DeviceAddress | The resulting map address for the bus master controller to use to access the hosts HostAddress. |
Mapping | A resulting value to pass to Unmap(). |
EFI_SUCCESS | The range was mapped for the returned NumberOfBytes. |
EFI_UNSUPPORTED | The HostAddress cannot be mapped as a common buffer. |
EFI_INVALID_PARAMETER | One or more parameters are invalid. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
EFI_DEVICE_ERROR | The system hardware could not map the requested address. |
Definition at line 46 of file CoherentDmaLib.c.
EFI_STATUS EFIAPI DmaUnmap | ( | IN VOID * | Mapping | ) |
Completes the DmaMapBusMasterRead(), DmaMapBusMasterWrite(), or DmaMapBusMasterCommonBuffer() operation and releases any corresponding resources.
Mapping | The mapping value returned from DmaMap*(). |
EFI_SUCCESS | The range was unmapped. |
EFI_DEVICE_ERROR | The data was not committed to the target system memory. |
Definition at line 79 of file CoherentDmaLib.c.
Definition at line 17 of file CoherentDmaLib.c.