/* Writes the I/O port specified by Port with registers width and value specified by Width and Data respectively. Data is returned. If such operations are not supported, then ASSERT(). This function must guarantee that all I/O read and write operations are serialized. */
UINT64 EFIAPI IoWriteWorker(IN UINTN Port, IN EFI_SMM_IO_WIDTH Width, IN UINT64 Data)
/* Writes the I/O port specified by Port with registers width and value specified by Width and Data respectively. Data is returned. If such operations are not supported, then ASSERT(). This function must guarantee that all I/O read and write operations are serialized. */
UINT64 EFIAPI IoWriteWorker(IN UINTN Port, IN EFI_SMM_IO_WIDTH Width, IN UINT64 Data)
{
  EFI_STATUS  Status;
  Status = gSmst->SmmIo.Io.Write (&gSmst->SmmIo, Width, Port, 1, &Data);
  ASSERT_EFI_ERROR (Status);
  return Data;
}