Device_io.allocatebuffer(), Allocatebuffer(), Inte – Intel Extensible Firmware Interface User Manual
Page 771

Protocols — Device I/O Protocol
Version 1.10
12/01/02
18-11
DEVICE_IO.AllocateBuffer()
Summary
Allocates pages that are suitable for an
mapping.
Prototype
typedef
EFI_STATUS
(EFIAPI *EFI_IO_ALLOCATE_BUFFER) (
IN EFI_DEVICE_IO_INTERFACE
*This,
IN EFI_ALLOCATE_TYPE
Type,
IN EFI_MEMORY_TYPE
MemoryType,
IN UINTN
Pages,
IN OUT EFI_PHYSICAL_ADDRESS
*HostAddress
);
Parameters
This
A pointer to the
instance. Type
EFI_DEVICE_IO_INTERFACE
is defined in Section 18.2.
Type
The type allocation to perform. Type
is
defined in Chapter 5.
MemoryType
The type of memory to allocate,
EfiBootServicesData
or
EfiRuntimeServicesData
. Type
is defined
in Chapter 5.
Pages
The number of pages to allocate.
HostAddress
A pointer to store the base address of the allocated range. Type
is defined in Chapter 5.
Description
The
AllocateBuffer()
function allocates pages that are suitable for an
EFIBusMasterCommonBuffer
mapping.
The
AllocateBuffer()
function internally calls
to allocate a memory
range that can be mapped as an
EFIBusMasterCommonBuffer
. When the buffer is no longer
needed, the driver frees the memory with a call to
Allocation requests of
Type AllocateAnyPages
will allocate any available range of pages that
satisfies the request. On input the data pointed to by
HostAddress
is ignored.