![Intel Extensible Firmware Interface Specification Download Page 163](http://html1.mh-extra.com/html/intel/extensible-firmware-interface/extensible-firmware-interface_specification_2073117163.webp)
Device I/O Protocol
Version 1.02
12/12/00
145
Related Definitions
//*******************************************************
// EFI_IO_OPERATION_TYPE
//*******************************************************
typedef enum {
EfiBusMasterRead,
EfiBusMasterWrite,
EfiBusMasterCommonBuffer
} EFI_IO_OPERATION_TYPE;
EfiBusMasterRead
A read operation from system memory by a bus master.
EfiBusMasterWrite
A write operation to system memory by a bus master.
EfiBusMasterCommonBuffer
Provides both read and write access to system memory
by both the CPU and a bus master. The buffer is
coherent from both the CPUs and the bus masters point
of
view.
Description
The
DEVICE_IO.Map()
function provides the device specific addresses needed to access system
memory. This function is used to map system memory for bus master DMA accesses.
All bus master accesses must be performed through their mapped addresses and such mappings
must be freed with
Unmap()
when complete. If the bus master access is a single read or write data
transfer, then
EfiBusMasterRead
or
EfiBusMasterWrite
is used and the range is
unmapped to complete the operation. If performing an
EfiBusMasterRead
operation, all the
data must be present in system memory before the
Map()
is performed. Similarly, if performing
an
EfiBusMasterWrite
, the data can not be properly accessed in system memory until the
Unmap()
is performed.
Bus master operations that require both read and write access or require multiple host device
interactions within the same mapped region must use
EfiBusMasterCommonBuffer
.
However, only memory allocated via the
DEVICE_IO.AllocateBuffer()
interface is
guaranteed to be able to be mapped for this operation type.
In all mapping requests the resulting
NumberOfBytes
actually mapped may be less than
requested.
Status Codes Returned
EFI_SUCCESS
The range was mapped for the returned
NumberOfBytes
.
EFI_INVALID_PARAMETER
The
Operation
or
HostAddress
is undefined.
EFI_UNSUPPORTED
The
HostAddress
can not be mapped as a common buffer.
EFI_DEVICE_ERROR
The system hardware could not map the requested address.
EFI_OUT_OF_RESOURCES
The request could not be completed due to a lack of resources.
Summary of Contents for Extensible Firmware Interface
Page 1: ...Extensible Firmware Interface Specification Version 1 02 December 12 2000...
Page 4: ...Extensible Firmware Interface Specification iv 12 12 00 Version 1 02...
Page 42: ...Extensible Firmware Interface Specification 24 12 01 00 Version 1 02...
Page 190: ...Extensible Firmware Interface Specification 172 12 12 00 Version 1 02...
Page 200: ...Extensible Firmware Interface Specification 182 12 12 00 Version 1 02...
Page 226: ...Extensible Firmware Interface Specification 208 12 12 00 Version 1 02...
Page 230: ...Extensible Firmware Interface Specification 212 12 12 00 Version 1 02...
Page 252: ...Extensible Firmware Interface Specification 234 12 12 00 Version 1 02...
Page 294: ...Extensible Firmware Interface Specification 276 12 12 00 Version 1 02...
Page 348: ...Extensible Firmware Interface Specification 330 12 01 00 Version 1 01...
Page 350: ...Extensible Firmware Interface Specification 332 12 12 00 Version 1 02...
Page 354: ...Extensible Firmware Interface Specification 336 12 12 00 Version 1 02...
Page 362: ...Extensible Firmware Interface Specification 344 12 12 00 Version 1 02...
Page 486: ...Extensible Firmware Interface Specification 468 12 12 00 Version 1 02...
Page 494: ...Extensible Firmware Interface Specification 476 12 12 00 Version 1 02...