\r
**/\r
\r
-#define SPIN_LOCK_RELEASED ((SPIN_LOCK)0)\r
-#define SPIN_LOCK_ACQUIRED ((SPIN_LOCK)-1)\r
+#define SPIN_LOCK_RELEASED ((SPIN_LOCK)1)\r
+#define SPIN_LOCK_ACQUIRED ((SPIN_LOCK)2)\r
\r
UINT32\r
EFIAPI\r
)\r
{\r
ASSERT (SpinLock != NULL);\r
- *SpinLock = 0;\r
+ *SpinLock = SPIN_LOCK_RELEASED;\r
return SpinLock;\r
}\r
\r
Tick = 0;\r
Start = 0;\r
End = 0;\r
- if (FixedPcdGet32 (PcdSpinLockTimeout) > 0) {\r
+ if (PcdGet32 (PcdSpinLockTimeout) > 0) {\r
Tick = GetPerformanceCounter ();\r
Timeout = DivU64x32 (\r
MultU64x32 (\r
GetPerformanceCounterProperties (&Start, &End),\r
- FixedPcdGet32 (PcdSpinLockTimeout)\r
+ PcdGet32 (PcdSpinLockTimeout)\r
),\r
1000000\r
);\r
)\r
{\r
ASSERT (SpinLock != NULL);\r
+ ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED);\r
return (BOOLEAN)(\r
InterlockedCompareExchangePointer (\r
(VOID**)SpinLock,\r
)\r
{\r
ASSERT (SpinLock != NULL);\r
- *SpinLock = 0;\r
+ ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED);\r
+ *SpinLock = SPIN_LOCK_RELEASED;\r
return SpinLock;\r
}\r
\r
UINT32\r
EFIAPI\r
InterlockedCompareExchange32 (\r
- IN UINT32 *Value,\r
+ IN OUT UINT32 *Value,\r
IN UINT32 CompareValue,\r
IN UINT32 ExchangeValue\r
)\r
UINT64\r
EFIAPI\r
InterlockedCompareExchange64 (\r
- IN UINT64 *Value,\r
+ IN OUT UINT64 *Value,\r
IN UINT64 CompareValue,\r
IN UINT64 ExchangeValue\r
)\r
VOID *\r
EFIAPI\r
InterlockedCompareExchangePointer (\r
- IN VOID **Value,\r
+ IN OUT VOID **Value,\r
IN VOID *CompareValue,\r
IN VOID *ExchangeValue\r
)\r