Device_io.mem(), .io(), and .pci(), Mem(), Io() – Intel Extensible Firmware Interface User Manual
Page 765: Pci()

Protocols
— Device I/O Protocol
Version 1.10
12/01/02
18-5
DEVICE_IO.Mem(), .Io(), and .Pci()
Summary
Enables a driver to access device registers in the appropriate memory or I/O space.
Prototype
typedef
EFI_STATUS
(EFIAPI *EFI_DEVICE_IO) (
IN struct EFI_DEVICE_IO_INTERFACE
*This,
IN EFI_IO_WIDTH
Width,
IN UINT64
Address,
IN UINTN
Count,
IN OUT VOID
*Buffer
);
Parameters
This
A pointer to the
instance. Type
EFI_DEVICE_IO_INTERFACE
is defined in Section 18.2.
Width
Signifies the width of the I/O operations. Type
is
defined in Section 18.2.
Address
The base address of the I/O operations. The caller is responsible for
aligning the
Address
if required.
Count
The number of I/O operations to perform. Bytes moved is
Width
size *
Count
, starting at
Address
.
Buffer
For read operations, the destination buffer to store the results. For write
operations, the source buffer to write data from.