/* Enables a PCI driver to access PCI controller registers in the PCI root bridge I/O space. */
EFI_STATUS EFIAPI RootBridgeIoIoRead(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, OUT VOID *Buffer)
/* Enables a PCI driver to access PCI controller registers in the PCI root bridge I/O space. */
EFI_STATUS EFIAPI RootBridgeIoIoRead(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, OUT VOID *Buffer)
{
  EFI_STATUS                Status;
  PCI_ROOT_BRIDGE_INSTANCE  *RootBridge;
  Status = RootBridgeIoCheckParameter (
             This,
             IoOperation,
             Width,
             Address,
             Count,
             Buffer
             );
  if (EFI_ERROR (Status)) {
    return Status;
  }
  RootBridge = ROOT_BRIDGE_FROM_THIS (This);
  return mCpuIo->Io.Read (
                      mCpuIo,
                      (EFI_CPU_IO_PROTOCOL_WIDTH)Width,
                      TO_HOST_ADDRESS (Address, RootBridge->Io.Translation),
                      Count,
                      Buffer
                      );
}