summaryrefslogtreecommitdiffstats
path: root/MdePkg/Library/BaseSynchronizationLib/Synchronization.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Library/BaseSynchronizationLib/Synchronization.c')
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/Synchronization.c86
1 files changed, 45 insertions, 41 deletions
diff --git a/MdePkg/Library/BaseSynchronizationLib/Synchronization.c b/MdePkg/Library/BaseSynchronizationLib/Synchronization.c
index 3f7a0c7af6..54eb19d895 100644
--- a/MdePkg/Library/BaseSynchronizationLib/Synchronization.c
+++ b/MdePkg/Library/BaseSynchronizationLib/Synchronization.c
@@ -8,8 +8,8 @@
#include "BaseSynchronizationLibInternals.h"
-#define SPIN_LOCK_RELEASED ((UINTN) 1)
-#define SPIN_LOCK_ACQUIRED ((UINTN) 2)
+#define SPIN_LOCK_RELEASED ((UINTN) 1)
+#define SPIN_LOCK_ACQUIRED ((UINTN) 2)
/**
Retrieves the architecture specific spin lock alignment requirements for
@@ -55,7 +55,7 @@ GetSpinLockProperties (
SPIN_LOCK *
EFIAPI
InitializeSpinLock (
- OUT SPIN_LOCK *SpinLock
+ OUT SPIN_LOCK *SpinLock
)
{
ASSERT (SpinLock != NULL);
@@ -86,7 +86,7 @@ InitializeSpinLock (
SPIN_LOCK *
EFIAPI
AcquireSpinLock (
- IN OUT SPIN_LOCK *SpinLock
+ IN OUT SPIN_LOCK *SpinLock
)
{
UINT64 Current;
@@ -106,7 +106,7 @@ AcquireSpinLock (
//
// Get the current timer value
//
- Current = GetPerformanceCounter();
+ Current = GetPerformanceCounter ();
//
// Initialize local variables
@@ -130,23 +130,27 @@ AcquireSpinLock (
if (Cycle < 0) {
Cycle = -Cycle;
}
+
Cycle++;
while (!AcquireSpinLockOrFail (SpinLock)) {
CpuPause ();
Previous = Current;
- Current = GetPerformanceCounter();
- Delta = (INT64) (Current - Previous);
+ Current = GetPerformanceCounter ();
+ Delta = (INT64)(Current - Previous);
if (Start > End) {
Delta = -Delta;
}
+
if (Delta < 0) {
Delta += Cycle;
}
+
Total += Delta;
ASSERT (Total < Timeout);
}
}
+
return SpinLock;
}
@@ -170,10 +174,10 @@ AcquireSpinLock (
BOOLEAN
EFIAPI
AcquireSpinLockOrFail (
- IN OUT SPIN_LOCK *SpinLock
+ IN OUT SPIN_LOCK *SpinLock
)
{
- SPIN_LOCK LockValue;
+ SPIN_LOCK LockValue;
ASSERT (SpinLock != NULL);
@@ -181,12 +185,12 @@ AcquireSpinLockOrFail (
ASSERT (SPIN_LOCK_ACQUIRED == LockValue || SPIN_LOCK_RELEASED == LockValue);
return (BOOLEAN)(
- InterlockedCompareExchangePointer (
- (VOID**)SpinLock,
- (VOID*)SPIN_LOCK_RELEASED,
- (VOID*)SPIN_LOCK_ACQUIRED
- ) == (VOID*)SPIN_LOCK_RELEASED
- );
+ InterlockedCompareExchangePointer (
+ (VOID **)SpinLock,
+ (VOID *)SPIN_LOCK_RELEASED,
+ (VOID *)SPIN_LOCK_ACQUIRED
+ ) == (VOID *)SPIN_LOCK_RELEASED
+ );
}
/**
@@ -206,10 +210,10 @@ AcquireSpinLockOrFail (
SPIN_LOCK *
EFIAPI
ReleaseSpinLock (
- IN OUT SPIN_LOCK *SpinLock
+ IN OUT SPIN_LOCK *SpinLock
)
{
- SPIN_LOCK LockValue;
+ SPIN_LOCK LockValue;
ASSERT (SpinLock != NULL);
@@ -237,7 +241,7 @@ ReleaseSpinLock (
UINT32
EFIAPI
InterlockedIncrement (
- IN volatile UINT32 *Value
+ IN volatile UINT32 *Value
)
{
ASSERT (Value != NULL);
@@ -261,7 +265,7 @@ InterlockedIncrement (
UINT32
EFIAPI
InterlockedDecrement (
- IN volatile UINT32 *Value
+ IN volatile UINT32 *Value
)
{
ASSERT (Value != NULL);
@@ -290,9 +294,9 @@ InterlockedDecrement (
UINT16
EFIAPI
InterlockedCompareExchange16 (
- IN OUT volatile UINT16 *Value,
- IN UINT16 CompareValue,
- IN UINT16 ExchangeValue
+ IN OUT volatile UINT16 *Value,
+ IN UINT16 CompareValue,
+ IN UINT16 ExchangeValue
)
{
ASSERT (Value != NULL);
@@ -321,9 +325,9 @@ InterlockedCompareExchange16 (
UINT32
EFIAPI
InterlockedCompareExchange32 (
- IN OUT volatile UINT32 *Value,
- IN UINT32 CompareValue,
- IN UINT32 ExchangeValue
+ IN OUT volatile UINT32 *Value,
+ IN UINT32 CompareValue,
+ IN UINT32 ExchangeValue
)
{
ASSERT (Value != NULL);
@@ -351,9 +355,9 @@ InterlockedCompareExchange32 (
UINT64
EFIAPI
InterlockedCompareExchange64 (
- IN OUT volatile UINT64 *Value,
- IN UINT64 CompareValue,
- IN UINT64 ExchangeValue
+ IN OUT volatile UINT64 *Value,
+ IN UINT64 CompareValue,
+ IN UINT64 ExchangeValue
)
{
ASSERT (Value != NULL);
@@ -381,9 +385,9 @@ InterlockedCompareExchange64 (
VOID *
EFIAPI
InterlockedCompareExchangePointer (
- IN OUT VOID * volatile *Value,
- IN VOID *CompareValue,
- IN VOID *ExchangeValue
+ IN OUT VOID *volatile *Value,
+ IN VOID *CompareValue,
+ IN VOID *ExchangeValue
)
{
UINT8 SizeOfValue;
@@ -392,17 +396,17 @@ InterlockedCompareExchangePointer (
switch (SizeOfValue) {
case sizeof (UINT32):
- return (VOID*)(UINTN)InterlockedCompareExchange32 (
- (volatile UINT32 *)Value,
- (UINT32)(UINTN)CompareValue,
- (UINT32)(UINTN)ExchangeValue
- );
+ return (VOID *)(UINTN)InterlockedCompareExchange32 (
+ (volatile UINT32 *)Value,
+ (UINT32)(UINTN)CompareValue,
+ (UINT32)(UINTN)ExchangeValue
+ );
case sizeof (UINT64):
- return (VOID*)(UINTN)InterlockedCompareExchange64 (
- (volatile UINT64 *)Value,
- (UINT64)(UINTN)CompareValue,
- (UINT64)(UINTN)ExchangeValue
- );
+ return (VOID *)(UINTN)InterlockedCompareExchange64 (
+ (volatile UINT64 *)Value,
+ (UINT64)(UINTN)CompareValue,
+ (UINT64)(UINTN)ExchangeValue
+ );
default:
ASSERT (FALSE);
return NULL;