/* Prepend the transport header to a block of data and send.  */
STATIC VOID EFIAPI BhyveFwCtl_MsgSend(IN UINT32 OpCode, IN BIO_VEC Data[])
/* Prepend the transport header to a block of data and send.  */
STATIC VOID EFIAPI BhyveFwCtl_MsgSend(IN UINT32 OpCode, IN BIO_VEC Data[])
{
  BIO_VEC  hIov[4];
  UINT32   Hdr[3];
  UINT32   i;
  for (i = 0; i < 3; i++) {
    hIov[i].Base = &Hdr[i];
    hIov[i].Len  = sizeof (Hdr[0]);
  }
  hIov[i].Base = NULL;
  hIov[i].Len  = 0;
  Hdr[0] = BIov_WLen (hIov) + BIov_WLen (Data);
  Hdr[1] = (UINT32)OpCode;
  Hdr[2] = mBhyveFwCtlTxid;
  BIov_SendAll (hIov);
  BIov_SendAll (Data);
}