/* DevicePathNode must be SerialSata type and this will populate the MappingItem. */
EFI_STATUS DevPathSerialSata(IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
/* DevicePathNode must be SerialSata type and this will populate the MappingItem. */
EFI_STATUS DevPathSerialSata(IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
{
  EFI_STATUS        Status;
  SATA_DEVICE_PATH  *Sata;
  ASSERT (DevicePathNode != NULL);
  ASSERT (MappingItem != NULL);
  Sata   = (SATA_DEVICE_PATH  *)DevicePathNode;
  Status = AppendCSDNum (MappingItem, Sata->HBAPortNumber);
  if (!EFI_ERROR (Status)) {
    Status = AppendCSDNum (MappingItem, Sata->PortMultiplierPortNumber);
  }
  if (!EFI_ERROR (Status)) {
    Status = AppendCSDNum (MappingItem, Sata->Lun);
  }
  return Status;
}