/* Parse the options in the OACK packet to MTFTP4_OPTION which program can access directly. */
EFI_STATUS Mtftp4ParseOptionOack(IN EFI_MTFTP4_PACKET *Packet, IN UINT32 PacketLen, IN UINT16 Operation, OUT MTFTP4_OPTION *MtftpOption)
/* Parse the options in the OACK packet to MTFTP4_OPTION which program can access directly. */
EFI_STATUS Mtftp4ParseOptionOack(IN EFI_MTFTP4_PACKET *Packet, IN UINT32 PacketLen, IN UINT16 Operation, OUT MTFTP4_OPTION *MtftpOption)
{
  EFI_MTFTP4_OPTION  *OptionList;
  EFI_STATUS         Status;
  UINT32             Count;
  MtftpOption->Exist = 0;
  Status = Mtftp4ExtractOptions (Packet, PacketLen, &Count, &OptionList);
  if (EFI_ERROR (Status) || (Count == 0)) {
    return Status;
  }
  ASSERT (OptionList != NULL);
  Status = Mtftp4ParseOption (OptionList, Count, FALSE, Operation, MtftpOption);
  FreePool (OptionList);
  return Status;
}