X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FEbc%2FSynchronization.c;h=5d5bc2ff11770cbc6bdba1b08ae713c1a2178bec;hp=df591b287ab0cd032c17b3b9da687e99f48f0506;hb=1ea5ca46c7eefe66a01cb4db3b72fc0e5a04e2cb;hpb=ebfe209ec07c4105baba33576457a4bd6c798a2b diff --git a/MdePkg/Library/BaseLib/Ebc/Synchronization.c b/MdePkg/Library/BaseLib/Ebc/Synchronization.c index df591b287a..5d5bc2ff11 100644 --- a/MdePkg/Library/BaseLib/Ebc/Synchronization.c +++ b/MdePkg/Library/BaseLib/Ebc/Synchronization.c @@ -26,6 +26,22 @@ InternalSyncCompareExchange32 ( ((*Value = ExchangeValue), CompareValue); } +/** + Performs an atomic compare exchange operation on a 64-bit unsigned integer. + + Performs an atomic compare exchange operation on the 64-bit unsigned integer specified + by Value. If Value is equal to CompareValue, then Value is set to ExchangeValue and + CompareValue is returned. If Value is not equal to CompareValue, then Value is returned. + The compare exchange operation must be performed using MP safe mechanisms. + + @param Value A pointer to the 64-bit value for the compare exchange + operation. + @param CompareValue 64-bit value used in compare operation. + @param ExchangeValue 64-bit value used in exchange operation. + + @return The original *Value before exchange. + +**/ UINT64 EFIAPI InternalSyncCompareExchange64 ( @@ -38,6 +54,19 @@ InternalSyncCompareExchange64 ( ((*Value = ExchangeValue), CompareValue); } +/** + Performs an atomic increment of an 32-bit unsigned integer. + + Performs an atomic increment of the 32-bit unsigned integer specified by + Value and returns the incremented value. The increment operation must be + performed using MP safe mechanisms. The state of the return value is not + guaranteed to be MP safe. + + @param Value A pointer to the 32-bit value to increment. + + @return The incremented value. + +**/ UINT32 EFIAPI InternalSyncIncrement ( @@ -47,6 +76,19 @@ InternalSyncIncrement ( return ++*Value; } +/** + Performs an atomic decrement of an 32-bit unsigned integer. + + Performs an atomic decrement of the 32-bit unsigned integer specified by + Value and returns the decrement value. The decrement operation must be + performed using MP safe mechanisms. The state of the return value is not + guaranteed to be MP safe. + + @param Value A pointer to the 32-bit value to decrement. + + @return The decrement value. + +**/ UINT32 EFIAPI InternalSyncDecrement (