moved everything to chookspace
This commit is contained in:
102
gnu-efi/lib/runtime/rtlock.c
Normal file
102
gnu-efi/lib/runtime/rtlock.c
Normal file
@@ -0,0 +1,102 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 1998 Intel Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
lock.c
|
||||
|
||||
Abstract:
|
||||
|
||||
Implements FLOCK
|
||||
|
||||
|
||||
|
||||
Revision History
|
||||
|
||||
--*/
|
||||
|
||||
|
||||
#include "lib.h"
|
||||
|
||||
|
||||
|
||||
#ifndef __GNUC__
|
||||
#pragma RUNTIME_CODE(RtAcquireLock)
|
||||
#endif
|
||||
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 = uefi_call_wrapper(BS->RaiseTPL, 1, Lock->Tpl);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (LibRuntimeRaiseTPL != NULL) {
|
||||
Lock->OwnerTpl = LibRuntimeRaiseTPL(Lock->Tpl);
|
||||
}
|
||||
}
|
||||
Lock->Lock += 1;
|
||||
ASSERT (Lock->Lock == 1);
|
||||
}
|
||||
|
||||
|
||||
#ifndef __GNUC__
|
||||
#pragma RUNTIME_CODE(RtAcquireLock)
|
||||
#endif
|
||||
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) {
|
||||
uefi_call_wrapper(BS->RestoreTPL, 1, Tpl);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (LibRuntimeRestoreTPL != NULL) {
|
||||
LibRuntimeRestoreTPL(Tpl);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user