]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X64/InterlockedCompareExchange32.c
Fix minor issues in GCC assembly. The operand is 64bit and "q" prefix should be applied.
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / InterlockedCompareExchange32.c
index 4a9fe6aca66fe599697a48b93253db3634ea6b64..6157ac1f4b917dbb3dd5d9bee5ed0ebb4886f355 100644 (file)
 \r
 **/\r
 \r
-//\r
-// Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics\r
-//\r
+/**\r
+  Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.\r
+**/\r
+\r
 long _InterlockedCompareExchange(\r
    long volatile * Destination,\r
    long Exchange,\r
@@ -23,6 +24,23 @@ long _InterlockedCompareExchange(
 \r
 #pragma intrinsic(_InterlockedCompareExchange)\r
 \r
+/**\r
+  Performs an atomic compare exchange operation on a 32-bit unsigned integer.\r
+\r
+  Performs an atomic compare exchange operation on the 32-bit unsigned integer\r
+  specified by Value.  If Value is equal to CompareValue, then Value is set to\r
+  ExchangeValue and CompareValue is returned.  If Value is not equal to CompareValue,\r
+  then Value is returned.  The compare exchange operation must be performed using\r
+  MP safe mechanisms.\r
+\r
+  @param  Value         A pointer to the 32-bit value for the compare exchange\r
+                        operation.\r
+  @param  CompareValue  32-bit value used in compare operation.\r
+  @param  ExchangeValue 32-bit value used in exchange operation.\r
+\r
+  @return The original *Value before exchange.\r
+\r
+**/\r
 UINT32\r
 EFIAPI\r
 InternalSyncCompareExchange32 (\r