123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /*++
- 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);
- }
|