/* If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). */
UINT8* EFIAPI S3MmioReadBuffer8(IN UINTN StartAddress, IN UINTN Length, OUT UINT8 *Buffer)
/* If Length is greater than (MAX_ADDRESS - StartAddress + 1), then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). */
UINT8* EFIAPI S3MmioReadBuffer8(IN UINTN StartAddress, IN UINTN Length, OUT UINT8 *Buffer)
{
  UINT8          *ReturnBuffer;
  RETURN_STATUS  Status;
  ReturnBuffer = MmioReadBuffer8 (StartAddress, Length, Buffer);
  Status = S3BootScriptSaveMemWrite (
             S3BootScriptWidthUint8,
             StartAddress,
             Length / sizeof (UINT8),
             ReturnBuffer
             );
  ASSERT (Status == RETURN_SUCCESS);
  return ReturnBuffer;
}