/** @file
  Find Cloud Hypervisor SMBIOS data.

  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#include <IndustryStandard/CloudHv.h> // CLOUDHV_SMBIOS_ADDRESS
#include <IndustryStandard/SmBios.h>  // SMBIOS_TABLE_3_0_ENTRY_POINT

/**
  Locates and extracts Cloud Hypervisor SMBIOS data

  @return                 Address of extracted Cloud Hypervisor SMBIOS data

**/
UINT8 *
GetCloudHvSmbiosTables (
  VOID
  )
{
  SMBIOS_TABLE_3_0_ENTRY_POINT  *CloudHvTables = (VOID *)CLOUDHV_SMBIOS_ADDRESS;

  if ((CloudHvTables->AnchorString[0] == '_') &&
      (CloudHvTables->AnchorString[1] == 'S') &&
      (CloudHvTables->AnchorString[2] == 'M') &&
      (CloudHvTables->AnchorString[3] == '3') &&
      (CloudHvTables->AnchorString[4] == '_'))
  {
    return (UINT8 *)(UINTN)CloudHvTables->TableAddress;
  }

  return NULL;
}
