X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FSynchronization.c;h=c04edfc25116b481a96c24f73a8e2387f252baaf;hp=df395869a295a1b8f0675caaf5624e3b55152ef0;hb=277872438cb6f52662ee093a1385a6a6556e7c53;hpb=4c114006de95489973d33a5415bb451bcd6cd62a diff --git a/MdePkg/Library/BaseLib/Synchronization.c b/MdePkg/Library/BaseLib/Synchronization.c index df395869a2..c04edfc251 100644 --- a/MdePkg/Library/BaseLib/Synchronization.c +++ b/MdePkg/Library/BaseLib/Synchronization.c @@ -14,8 +14,8 @@ **/ -#define SPIN_LOCK_RELEASED ((SPIN_LOCK)0) -#define SPIN_LOCK_ACQUIRED ((SPIN_LOCK)-1) +#define SPIN_LOCK_RELEASED ((SPIN_LOCK)1) +#define SPIN_LOCK_ACQUIRED ((SPIN_LOCK)2) UINT32 EFIAPI @@ -94,7 +94,7 @@ InitializeSpinLock ( ) { ASSERT (SpinLock != NULL); - *SpinLock = 0; + *SpinLock = SPIN_LOCK_RELEASED; return SpinLock; } @@ -178,6 +178,7 @@ AcquireSpinLockOrFail ( ) { ASSERT (SpinLock != NULL); + ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED); return (BOOLEAN)( InterlockedCompareExchangePointer ( (VOID**)SpinLock, @@ -208,7 +209,8 @@ ReleaseSpinLock ( ) { ASSERT (SpinLock != NULL); - *SpinLock = 0; + ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED); + *SpinLock = SPIN_LOCK_RELEASED; return SpinLock; }