/* Called by the platform code to process a tick. */
VOID EFIAPI CoreTimerTick(IN UINT64 Duration)
/* Called by the platform code to process a tick. */
VOID EFIAPI CoreTimerTick(IN UINT64 Duration)
{
  IEVENT  *Event;
  CoreAcquireLock (&mEfiSystemTimeLock);
  mEfiSystemTime += Duration;
  if (!IsListEmpty (&mEfiTimerList)) {
    Event = CR (mEfiTimerList.ForwardLink, IEVENT, Timer.Link, EVENT_SIGNATURE);
    if (Event->Timer.TriggerTime <= mEfiSystemTime) {
      CoreSignalEvent (mEfiCheckTimerEvent);
    }
  }
  CoreReleaseLock (&mEfiSystemTimeLock);
}