/* For Td guest TDVMCALL_MMIO is invoked to read MMIO registers. */
UINT16 EFIAPI MmioRead16(IN UINTN Address)
/* For Td guest TDVMCALL_MMIO is invoked to read MMIO registers. */
UINT16 EFIAPI MmioRead16(IN UINTN Address)
{
  UINT16   Value;
  BOOLEAN  Flag;
  ASSERT ((Address & 1) == 0);
  Flag = FilterBeforeMmIoRead (FilterWidth16, Address, &Value);
  if (Flag) {
    MemoryFence ();
    if (IsTdxGuest ()) {
      Value = TdMmioRead16 (Address);
    } else {
      Value = *(volatile UINT16 *)Address;
    }
    MemoryFence ();
  }
  FilterAfterMmIoRead (FilterWidth16, Address, &Value);
  return Value;
}