Files
mirror-processhacker/2.x/trunk/ProcessHacker/include/fastlock.h
T
wj32 d4bab7a33a * made cmpxchg calls in fastlock intrinsics
* fixed x64 compiler warnings
* fixed reference leak

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@2527 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2009-12-29 02:38:22 +00:00

56 lines
1022 B
C

#ifndef FASTLOCK_H
#define FASTLOCK_H
#include <base.h>
// FastLock is a port of FastResourceLock from PH 1.x.
#if _M_X64
#include <pshpack8.h>
#endif
typedef struct _PH_FAST_LOCK
{
ULONG Value;
HANDLE ExclusiveWakeEvent;
HANDLE SharedWakeEvent;
} PH_FAST_LOCK, *PPH_FAST_LOCK;
#if _M_X64
#include <poppack.h>
#endif
VOID PhFastLockInitialization();
VOID PhInitializeFastLock(
__out PPH_FAST_LOCK FastLock
);
VOID PhDeleteFastLock(
__inout PPH_FAST_LOCK FastLock
);
VOID PhAcquireFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
VOID PhAcquireFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
VOID PhReleaseFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
VOID PhReleaseFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
BOOLEAN PhTryAcquireFastLockExclusive(
__inout PPH_FAST_LOCK FastLock
);
BOOLEAN PhTryAcquireFastLockShared(
__inout PPH_FAST_LOCK FastLock
);
#endif