/// Attributes for the EFI_ISA_IO_PROTOCOL common DMA buffer allocations\r
///\r
#define EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x080 ///< Map a memory range so write are combined\r
/// Attributes for the EFI_ISA_IO_PROTOCOL common DMA buffer allocations\r
///\r
#define EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x080 ///< Map a memory range so write are combined\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8 0x010 ///< Request 8-bit DMA transfers. Only available on channels 0..3\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16 0x020 ///< Request 16-bit DMA transfers. Only available on channels 4..7\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE 0x040 ///< Request a single DMA transfer\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8 0x010 ///< Request 8-bit DMA transfers. Only available on channels 0..3\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16 0x020 ///< Request 16-bit DMA transfers. Only available on channels 4..7\r
#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE 0x040 ///< Request a single DMA transfer\r
@retval EFI_UNSUPPORTED The Offset is not valid for this device.\r
@retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
@retval EFI_UNSUPPORTED The Offset is not valid for this device.\r
@retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
@retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
- operations must be performed through their mapped addresses and such mappings must \r
- be freed with EFI_ISA_IO_PROTOCOL.Unmap() after the DMA operation is completed. \r
+ operations must be performed through their mapped addresses, and such mappings must \r
+ be freed with EFI_ISA_IO_PROTOCOL.Unmap() after the DMA operation is completed.\r
+ \r
If the DMA operation is a single read or write data transfer through an ISA bus \r
master, then EfiIsaIoOperationBusMasterRead or EfiIsaIoOperationBusMasterWrite \r
is used and the range is unmapped to complete the operation. If the DMA operation\r
is a single read or write data transfer through an ISA slave controller, then \r
EfiIsaIoOperationSlaveRead or EfiIsaIoOperationSlaveWrite is used and the range \r
If the DMA operation is a single read or write data transfer through an ISA bus \r
master, then EfiIsaIoOperationBusMasterRead or EfiIsaIoOperationBusMasterWrite \r
is used and the range is unmapped to complete the operation. If the DMA operation\r
is a single read or write data transfer through an ISA slave controller, then \r
EfiIsaIoOperationSlaveRead or EfiIsaIoOperationSlaveWrite is used and the range \r
- is unmapped to complete the operation. If performing a DMA read operation, all \r
- the data must be present in system memory before the Map() is performed. Similarly, \r
+ is unmapped to complete the operation. \r
+ \r
+ If performing a DMA read operation, all the data must be present in system memory before the Map() is performed. Similarly, \r
if performing a DMA write operation, the data must not be accessed in system \r
memory until EFI_ISA_IO_PROTOCOL.Unmap() is performed. Bus master operations that \r
require both read and write access or require multiple host device interactions \r
within the same mapped region must use EfiIsaIoOperationBusMasterCommonBuffer. \r
However, only memory allocated via the EFI_ISA_IO_PROTOCOL.AllocateBuffer() interface \r
if performing a DMA write operation, the data must not be accessed in system \r
memory until EFI_ISA_IO_PROTOCOL.Unmap() is performed. Bus master operations that \r
require both read and write access or require multiple host device interactions \r
within the same mapped region must use EfiIsaIoOperationBusMasterCommonBuffer. \r
However, only memory allocated via the EFI_ISA_IO_PROTOCOL.AllocateBuffer() interface \r
requests the NumberOfBytes returned may be less than originally requested. It is\r
the caller's responsibility to make additional requests to complete the entire\r
transfer.\r
requests the NumberOfBytes returned may be less than originally requested. It is\r
the caller's responsibility to make additional requests to complete the entire\r
transfer.\r
/// used to abstract accesses to ISA controllers. There is one EFI_ISA_IO_PROTOCOL \r
/// instance for each ISA controller on a ISA bus. A device driver that wishes \r
/// to manage an ISA controller in a system will have to retrieve the \r
/// used to abstract accesses to ISA controllers. There is one EFI_ISA_IO_PROTOCOL \r
/// instance for each ISA controller on a ISA bus. A device driver that wishes \r
/// to manage an ISA controller in a system will have to retrieve the \r