/* Create and start the heartbeat timer for the TCP driver. */
EFI_STATUS TcpCreateTimer(VOID)
/* Create and start the heartbeat timer for the TCP driver. */
EFI_STATUS TcpCreateTimer(VOID)
{
  EFI_STATUS  Status;
  Status = EFI_SUCCESS;
  if (mTcpTimer.RefCnt == 0) {
    Status = gBS->CreateEvent (
                    EVT_TIMER | EVT_NOTIFY_SIGNAL,
                    TPL_NOTIFY,
                    TcpTicking,
                    NULL,
                    &mTcpTimer.TimerEvent
                    );
    if (!EFI_ERROR (Status)) {
      Status = gBS->SetTimer (
                      mTcpTimer.TimerEvent,
                      TimerPeriodic,
                      (UINT64)(TICKS_PER_SECOND / TCP_TICK_HZ)
                      );
    }
  }
  if (!EFI_ERROR (Status)) {
    mTcpTimer.RefCnt++;
  }
  return Status;
}