mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 06:05:48 +00:00
[RTL]
- Use portable interlocked functions in code, define them to intrinsics for x86 and x64 in the header svn path=/branches/cmake-bringup/; revision=49680
This commit is contained in:
parent
0b8509a565
commit
45a06d507a
8 changed files with 56 additions and 48 deletions
|
@ -131,7 +131,7 @@ RtlpReleaseWaitBlockLockExclusive(IN OUT PRTL_SRWLOCK SRWLock,
|
|||
}
|
||||
}
|
||||
|
||||
(void)_InterlockedExchange((PLONG)&SRWLock->Ptr, NewValue);
|
||||
(void)InterlockedExchange((PLONG)&SRWLock->Ptr, NewValue);
|
||||
|
||||
if (FirstWaitBlock->Exclusive)
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ RtlpReleaseWaitBlockLockLastShared(IN OUT PRTL_SRWLOCK SRWLock,
|
|||
NewValue = RTL_SRWLOCK_OWNED;
|
||||
}
|
||||
|
||||
(void)_InterlockedExchange((PLONG)&SRWLock->Ptr, NewValue);
|
||||
(void)InterlockedExchange((PLONG)&SRWLock->Ptr, NewValue);
|
||||
|
||||
(void)InterlockedOr(&FirstWaitBlock->Wake,
|
||||
TRUE);
|
||||
|
@ -420,7 +420,7 @@ RtlAcquireSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
NewValue = (CurrentValue >> RTL_SRWLOCK_BITS) + 1;
|
||||
NewValue = (NewValue << RTL_SRWLOCK_BITS) | (CurrentValue & RTL_SRWLOCK_MASK);
|
||||
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -499,7 +499,7 @@ RtlAcquireSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
ASSERT_SRW_WAITBLOCK(&StackWaitBlock);
|
||||
|
||||
NewValue = (ULONG_PTR)&StackWaitBlock | RTL_SRWLOCK_OWNED | RTL_SRWLOCK_CONTENDED;
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -521,7 +521,7 @@ RtlAcquireSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
RTL_SRWLOCK_SHARED nor the RTL_SRWLOCK_OWNED bit is set */
|
||||
ASSERT(!(CurrentValue & RTL_SRWLOCK_CONTENDED));
|
||||
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -580,7 +580,7 @@ RtlReleaseSRWLockShared(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
NewValue = (NewValue << RTL_SRWLOCK_BITS) | RTL_SRWLOCK_SHARED | RTL_SRWLOCK_OWNED;
|
||||
}
|
||||
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -639,7 +639,7 @@ RtlAcquireSRWLockExclusive(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
|
||||
NewValue = (ULONG_PTR)&StackWaitBlock | RTL_SRWLOCK_SHARED | RTL_SRWLOCK_CONTENDED | RTL_SRWLOCK_OWNED;
|
||||
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -697,7 +697,7 @@ AddWaitBlock:
|
|||
ASSERT_SRW_WAITBLOCK(&StackWaitBlock);
|
||||
|
||||
NewValue = (ULONG_PTR)&StackWaitBlock | RTL_SRWLOCK_OWNED | RTL_SRWLOCK_CONTENDED;
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
@ -767,7 +767,7 @@ RtlReleaseSRWLockExclusive(IN OUT PRTL_SRWLOCK SRWLock)
|
|||
ASSERT(!(CurrentValue & ~RTL_SRWLOCK_OWNED));
|
||||
|
||||
NewValue = 0;
|
||||
if (_InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
if (InterlockedCompareExchange((PLONG)&SRWLock->Ptr,
|
||||
NewValue,
|
||||
CurrentValue) == CurrentValue)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue