Leaked source code of windows server 2003
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"
VOID InitializeLock ( IN OUT FLOCK *Lock, IN EFI_TPL Priority ) /*++
Routine Description:
Initialize a basic mutual exclusion lock. Each lock provides mutual exclusion access at it's task priority level. Since there is no-premption (at any TPL) or multiprocessor support, acquiring the lock only consists of raising to the locks TPL.
Note on a debug build the lock is acquired and released to help ensure proper usage. Arguments:
Lock - The FLOCK structure to initialize
Priority - The task priority level of the lock
Returns:
An initialized F Lock structure.
--*/ { Lock->Tpl = Priority; Lock->OwnerTpl = 0; Lock->Lock = 0; }
VOID AcquireLock ( 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
--*/ { RtAcquireLock (Lock); }
VOID ReleaseLock ( 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
--*/ { RtReleaseLock (Lock); }
|