/* Lowest supported version is a combo of three parts. */
UINT32 GetLowestSupportedVersion(FIRMWARE_MANAGEMENT_PRIVATE_DATA *Private)
/* Lowest supported version is a combo of three parts. */
UINT32 GetLowestSupportedVersion(FIRMWARE_MANAGEMENT_PRIVATE_DATA *Private)
{
  EFI_STATUS  Status;
  UINT32      DeviceLibLowestSupportedVersion;
  UINT32      VariableLowestSupportedVersion;
  UINT32      ReturnLsv;
  if (!IsLowestSupportedVersionCheckRequired ()) {
    return 0;
  }
  ReturnLsv = PcdGet32 (PcdFmpDeviceBuildTimeLowestSupportedVersion);
  DeviceLibLowestSupportedVersion = DEFAULT_LOWESTSUPPORTEDVERSION;
  Status                          = FmpDeviceGetLowestSupportedVersion (&DeviceLibLowestSupportedVersion);
  if (EFI_ERROR (Status)) {
    DeviceLibLowestSupportedVersion = DEFAULT_LOWESTSUPPORTEDVERSION;
  }
  if (DeviceLibLowestSupportedVersion > ReturnLsv) {
    ReturnLsv = DeviceLibLowestSupportedVersion;
  }
  VariableLowestSupportedVersion = GetLowestSupportedVersionFromVariable (Private);
  if (VariableLowestSupportedVersion > ReturnLsv) {
    ReturnLsv = VariableLowestSupportedVersion;
  }
  return ReturnLsv;
}