/* This function transitions a mutual exclusion lock from the acquired state to the released state, and restores the system's task priority level to its previous level. If Lock is NULL, then ASSERT(). If Lock is not initialized, then ASSERT(). If Lock is already in the released state, then ASSERT(). */
VOID EFIAPI EfiReleaseLock(IN EFI_LOCK *Lock)
/* This function transitions a mutual exclusion lock from the acquired state to the released state, and restores the system's task priority level to its previous level. If Lock is NULL, then ASSERT(). If Lock is not initialized, then ASSERT(). If Lock is already in the released state, then ASSERT(). */
VOID EFIAPI EfiReleaseLock(IN EFI_LOCK *Lock)
{
  EFI_TPL  Tpl;
  ASSERT (Lock != NULL);
  ASSERT (Lock->Lock == EfiLockAcquired);
  Tpl = Lock->OwnerTpl;
  Lock->Lock = EfiLockReleased;
  gBS->RestoreTPL (Tpl);
}