Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998 Intel Corporation
Module Name:
lock.c
Abstract:
Implements FLOCK
Revision History
--*/
#include "lib.h"
#pragma RUNTIME_CODE(RtAcquireLock)
VOID RtAcquireLock ( IN FLOCK *Lock ) /*++
Routine Description:
Raising to the task priority level of the mutual exclusion lock, and then acquires ownership of the lock. Arguments:
Lock - The lock to acquire Returns:
Lock owned
--*/ { if (BS) { if (BS->RaiseTPL != NULL) { Lock->OwnerTpl = BS->RaiseTPL(Lock->Tpl); } } else { if (LibRuntimeRaiseTPL != NULL) { Lock->OwnerTpl = LibRuntimeRaiseTPL(Lock->Tpl); } } Lock->Lock += 1; ASSERT (Lock->Lock == 1); }
#pragma RUNTIME_CODE(RtAcquireLock)
VOID RtReleaseLock ( IN FLOCK *Lock ) /*++
Routine Description:
Releases ownership of the mutual exclusion lock, and restores the previous task priority level. Arguments:
Lock - The lock to release Returns:
Lock unowned
--*/ { EFI_TPL Tpl;
Tpl = Lock->OwnerTpl; ASSERT(Lock->Lock == 1); Lock->Lock -= 1; if (BS) { if (BS->RestoreTPL != NULL) { BS->RestoreTPL (Tpl); } } else { if (LibRuntimeRestoreTPL != NULL) { LibRuntimeRestoreTPL(Tpl); } } }
|