Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_atomic.h(3) 		      DPDK			 rte_atomic.h(3)

NAME
     rte_atomic.h

SYNOPSIS
     #include <stdint.h>
     #include <rte_common.h>
     #include <rte_stdatomic.h>

   Data Structures
     struct rte_atomic16_t
     struct rte_atomic32_t
     struct rte_atomic64_t

   Macros
     #define rte_compiler_barrier()
     #define RTE_ATOMIC16_INIT(val)   { (val) }
     #define RTE_ATOMIC32_INIT(val)   { (val) }
     #define RTE_ATOMIC64_INIT(val)   { (val) }

   Functions
     static void rte_atomic_thread_fence (rte_memory_order memorder)
     static  int  rte_atomic16_cmpset  (volatile  uint16_t  *dst,  uint16_t exp,
	 uint16_t src)
     static uint16_t rte_atomic16_exchange  (volatile  uint16_t  *dst,	uint16_t
	 val)
     static void rte_atomic16_init (rte_atomic16_t *v)
     static int16_t rte_atomic16_read (const rte_atomic16_t *v)
     static void rte_atomic16_set (rte_atomic16_t *v, int16_t new_value)
     static void rte_atomic16_add (rte_atomic16_t *v, int16_t inc)
     static void rte_atomic16_sub (rte_atomic16_t *v, int16_t dec)
     static void rte_atomic16_inc (rte_atomic16_t *v)
     static void rte_atomic16_dec (rte_atomic16_t *v)
     static int16_t rte_atomic16_add_return (rte_atomic16_t *v, int16_t inc)
     static int16_t rte_atomic16_sub_return (rte_atomic16_t *v, int16_t dec)
     static int rte_atomic16_inc_and_test (rte_atomic16_t *v)
     static int rte_atomic16_dec_and_test (rte_atomic16_t *v)
     static int rte_atomic16_test_and_set (rte_atomic16_t *v)
     static void rte_atomic16_clear (rte_atomic16_t *v)
     static  int  rte_atomic32_cmpset  (volatile  uint32_t  *dst,  uint32_t exp,
	 uint32_t src)
     static uint32_t rte_atomic32_exchange  (volatile  uint32_t  *dst,	uint32_t
	 val)
     static void rte_atomic32_init (rte_atomic32_t *v)
     static int32_t rte_atomic32_read (const rte_atomic32_t *v)
     static void rte_atomic32_set (rte_atomic32_t *v, int32_t new_value)
     static void rte_atomic32_add (rte_atomic32_t *v, int32_t inc)
     static void rte_atomic32_sub (rte_atomic32_t *v, int32_t dec)
     static void rte_atomic32_inc (rte_atomic32_t *v)
     static void rte_atomic32_dec (rte_atomic32_t *v)
     static int32_t rte_atomic32_add_return (rte_atomic32_t *v, int32_t inc)
     static int32_t rte_atomic32_sub_return (rte_atomic32_t *v, int32_t dec)
     static int rte_atomic32_inc_and_test (rte_atomic32_t *v)
     static int rte_atomic32_dec_and_test (rte_atomic32_t *v)
     static int rte_atomic32_test_and_set (rte_atomic32_t *v)
     static void rte_atomic32_clear (rte_atomic32_t *v)
     static  int  rte_atomic64_cmpset  (volatile  uint64_t  *dst,  uint64_t exp,
	 uint64_t src)
     static uint64_t rte_atomic64_exchange  (volatile  uint64_t  *dst,	uint64_t
	 val)
     static void rte_atomic64_init (rte_atomic64_t *v)
     static int64_t rte_atomic64_read (rte_atomic64_t *v)
     static void rte_atomic64_set (rte_atomic64_t *v, int64_t new_value)
     static void rte_atomic64_add (rte_atomic64_t *v, int64_t inc)
     static void rte_atomic64_sub (rte_atomic64_t *v, int64_t dec)
     static void rte_atomic64_inc (rte_atomic64_t *v)
     static void rte_atomic64_dec (rte_atomic64_t *v)
     static int64_t rte_atomic64_add_return (rte_atomic64_t *v, int64_t inc)
     static int64_t rte_atomic64_sub_return (rte_atomic64_t *v, int64_t dec)
     static int rte_atomic64_inc_and_test (rte_atomic64_t *v)
     static int rte_atomic64_dec_and_test (rte_atomic64_t *v)
     static int rte_atomic64_test_and_set (rte_atomic64_t *v)
     static void rte_atomic64_clear (rte_atomic64_t *v)
     struct __rte_aligned (16)
     static  int  rte_atomic128_cmp_exchange  (rte_int128_t  *dst,  rte_int128_t
	 *exp, const rte_int128_t *src, unsigned  int  weak,  int  success,  int
	 failure)

     Memory Barrier

	 static void rte_mb (void)
	 static void rte_wmb (void)
	 static void rte_rmb (void)

     SMP Memory Barrier

	 static void rte_smp_mb (void)
	 static void rte_smp_wmb (void)
	 static void rte_smp_rmb (void)

     I/O Memory Barrier

	 static void rte_io_mb (void)
	 static void rte_io_wmb (void)
	 static void rte_io_rmb (void)

Detailed Description
     Atomic Operations

     This file defines a generic API for atomic operations.

     Definition in file rte_atomic.h.

Macro Definition Documentation
   #define rte_compiler_barrier()
     Value:.PP
	 do {	     \
	 asm volatile ("" : : : "memory");   \
     } while(0)
     Compiler barrier.

     Guarantees that operation reordering does not occur at compile time for op-
     erations directly before and after the barrier.

     Definition at line 157 of file rte_atomic.h.

   #define RTE_ATOMIC16_INIT(val)   { (val) }
     Static initializer for an atomic counter.

     Definition at line 234 of file rte_atomic.h.

   #define RTE_ATOMIC32_INIT(val)   { (val) }
     Static initializer for an atomic counter.

     Definition at line 519 of file rte_atomic.h.

   #define RTE_ATOMIC64_INIT(val)   { (val) }
     Static initializer for an atomic counter.

     Definition at line 803 of file rte_atomic.h.

Function Documentation
   static void rte_mb (void) [inline],	[static]
     General memory barrier.

     Guarantees  that the LOAD and STORE operations generated before the barrier
     occur before the LOAD and STORE operations generated after.

   static void rte_wmb (void) [inline],  [static]
     Write memory barrier.

     Guarantees that the STORE operations generated before the barrier occur be-
     fore the STORE operations generated after.

   static void rte_rmb (void) [inline],  [static]
     Read memory barrier.

     Guarantees that the LOAD operations generated before the barrier occur  be-
     fore the LOAD operations generated after.

   static void rte_smp_mb (void) [inline],  [static]
     General memory barrier between lcores

     Guarantees that the LOAD and STORE operations that precede the rte_smp_mb()
     call are globally visible across the lcores before the LOAD and STORE oper-
     ations that follows it.

     Note
	 This function is deprecated. It provides similar synchronization primi-
	 tive  as atomic fence, but has different syntax and memory ordering se-
	 mantic. Hence deprecated for the simplicity of memory	ordering  seman-
	 tics in use.

     rte_atomic_thread_fence(rte_memory_order_acq_rel) should be used instead.

   static void rte_smp_wmb (void) [inline],  [static]
     Write memory barrier between lcores

     Guarantees  that  the  STORE operations that precede the rte_smp_wmb() call
     are globally visible across the lcores before  the  STORE	operations  that
     follows it.

     Note
	 This function is deprecated. It provides similar synchronization primi-
	 tive  as atomic fence, but has different syntax and memory ordering se-
	 mantic. Hence deprecated for the simplicity of memory	ordering  seman-
	 tics in use.

     rte_atomic_thread_fence(rte_memory_order_release)	should	be used instead.
     The fence also guarantees LOAD operations that precede the call  are  glob-
     ally visible across the lcores before the STORE operations that follows it.

   static void rte_smp_rmb (void) [inline],  [static]
     Read memory barrier between lcores

     Guarantees that the LOAD operations that precede the rte_smp_rmb() call are
     globally  visible across the lcores before the LOAD operations that follows
     it.

     Note
	 This function is deprecated. It provides similar synchronization primi-
	 tive as atomic fence, but has different syntax and memory ordering  se-
	 mantic.  Hence  deprecated for the simplicity of memory ordering seman-
	 tics in use.

     rte_atomic_thread_fence(rte_memory_order_acquire) should be  used	instead.
     The  fence  also guarantees LOAD operations that precede the call are glob-
     ally visible across the lcores before the STORE operations that follows it.

   static void rte_io_mb (void) [inline],  [static]
     General memory barrier for I/O device

     Guarantees that the LOAD and STORE operations that precede the  rte_io_mb()
     call  are visible to I/O device or CPU before the LOAD and STORE operations
     that follow it.

   static void rte_io_wmb (void) [inline],  [static]
     Write memory barrier for I/O device

     Guarantees that the STORE operations that precede the rte_io_wmb() call are
     visible to I/O device before the STORE operations that follow it.

   static void rte_io_rmb (void) [inline],  [static]
     Read memory barrier for IO device

     Guarantees that  the  LOAD  operations  on  I/O  device  that  precede  the
     rte_io_rmb() call are visible to CPU before the LOAD operations that follow
     it.

   static  void  rte_atomic_thread_fence  (rte_memory_order  memorder) [inline],
     [static]
     Synchronization fence between threads based on the specified memory order.

   static int  rte_atomic16_cmpset  (volatile  uint16_t  *  dst,  uint16_t  exp,
     uint16_t src) [inline],  [static]
     Atomic compare and set.

     (atomic) equivalent to: if (*dst == exp) *dst = src (all 16-bit words)

     Parameters
	 dst The destination location into which the value will be written.
	 exp The expected value.
	 src The new value.

     Returns
	 Non-zero on success; 0 on failure.

   static uint16_t rte_atomic16_exchange (volatile uint16_t * dst, uint16_t val)
     [inline],	[static]
     Atomic exchange.

     (atomic) equivalent to: ret = *dst *dst = val; return ret;

     Parameters
	 dst The destination location into which the value will be written.
	 val The new value.

     Returns
	 The original value at that location

   static void rte_atomic16_init (rte_atomic16_t * v) [inline],  [static]
     Initialize an atomic counter.

     Parameters
	 v A pointer to the atomic counter.

     Definition at line 243 of file rte_atomic.h.

   static  int16_t rte_atomic16_read (const rte_atomic16_t * v) [inline],  [sta-
     tic]
     Atomically read a 16-bit value from a counter.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 The value of the counter.

     Definition at line 257 of file rte_atomic.h.

   static void rte_atomic16_set (rte_atomic16_t *  v,  int16_t	new_value)  [in-
     line],  [static]
     Atomically set a counter to a 16-bit value.

     Parameters
	 v A pointer to the atomic counter.
	 new_value The new value for the counter.

     Definition at line 271 of file rte_atomic.h.

   static  void  rte_atomic16_add  (rte_atomic16_t  *  v, int16_t inc) [inline],
     [static]
     Atomically add a 16-bit value to an atomic counter.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

     Definition at line 285 of file rte_atomic.h.

   static void rte_atomic16_sub (rte_atomic16_t  *  v,	int16_t  dec)  [inline],
     [static]
     Atomically subtract a 16-bit value from an atomic counter.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

     Definition at line 300 of file rte_atomic.h.

   static void rte_atomic16_inc (rte_atomic16_t * v) [inline],	[static]
     Atomically increment a counter by one.

     Parameters
	 v A pointer to the atomic counter.

   static void rte_atomic16_dec (rte_atomic16_t * v) [inline],	[static]
     Atomically decrement a counter by one.

     Parameters
	 v A pointer to the atomic counter.

   static int16_t rte_atomic16_add_return (rte_atomic16_t * v, int16_t inc) [in-
     line],  [static]
     Atomically add a 16-bit value to a counter and return the result.

     Atomically  adds  the 16-bits value (inc) to the atomic counter (v) and re-
     turns the value of v after addition.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

     Returns
	 The value of v after the addition.

     Definition at line 354 of file rte_atomic.h.

   static int16_t rte_atomic16_sub_return (rte_atomic16_t * v, int16_t dec) [in-
     line],  [static]
     Atomically subtract a 16-bit value from a counter and return the result.

     Atomically subtracts the 16-bit value (inc) from the atomic counter (v) and
     returns the value of v after the subtraction.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

     Returns
	 The value of v after the subtraction.

     Definition at line 375 of file rte_atomic.h.

   static int rte_atomic16_inc_and_test (rte_atomic16_t * v) [inline],	[static]

     Atomically increment a 16-bit counter by one and test.

     Atomically increments the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after the increment operation is 0; false otherwise.

   static int rte_atomic16_dec_and_test (rte_atomic16_t * v) [inline],	[static]

     Atomically decrement a 16-bit counter by one and test.

     Atomically decrements the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after the decrement operation is 0; false otherwise.

   static int rte_atomic16_test_and_set (rte_atomic16_t * v) [inline],	[static]

     Atomically test and set a 16-bit atomic counter.

     If the counter value is already set, return 0 (failed). Otherwise, set  the
     counter value to 1 and return 1 (success).

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 0 if failed; else 1, success.

   static void rte_atomic16_clear (rte_atomic16_t * v) [inline],  [static]
     Atomically set a 16-bit counter to 0.

     Parameters
	 v A pointer to the atomic counter.

     Definition at line 449 of file rte_atomic.h.

   static  int	rte_atomic32_cmpset  (volatile	uint32_t  *  dst,  uint32_t exp,
     uint32_t src) [inline],  [static]
     Atomic compare and set.

     (atomic) equivalent to: if (*dst == exp) *dst = src (all 32-bit words)

     Parameters
	 dst The destination location into which the value will be written.
	 exp The expected value.
	 src The new value.

     Returns
	 Non-zero on success; 0 on failure.

   static uint32_t rte_atomic32_exchange (volatile uint32_t * dst, uint32_t val)
     [inline],	[static]
     Atomic exchange.

     (atomic) equivalent to: ret = *dst *dst = val; return ret;

     Parameters
	 dst The destination location into which the value will be written.
	 val The new value.

     Returns
	 The original value at that location

   static void rte_atomic32_init (rte_atomic32_t * v) [inline],  [static]
     Initialize an atomic counter.

     Parameters
	 v A pointer to the atomic counter.

     Definition at line 528 of file rte_atomic.h.

   static int32_t rte_atomic32_read (const rte_atomic32_t * v) [inline],   [sta-
     tic]
     Atomically read a 32-bit value from a counter.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 The value of the counter.

     Definition at line 542 of file rte_atomic.h.

   static  void  rte_atomic32_set  (rte_atomic32_t  * v, int32_t new_value) [in-
     line],  [static]
     Atomically set a counter to a 32-bit value.

     Parameters
	 v A pointer to the atomic counter.
	 new_value The new value for the counter.

     Definition at line 556 of file rte_atomic.h.

   static void rte_atomic32_add (rte_atomic32_t  *  v,	int32_t  inc)  [inline],
     [static]
     Atomically add a 32-bit value to an atomic counter.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

     Definition at line 570 of file rte_atomic.h.

   static  void  rte_atomic32_sub  (rte_atomic32_t  *  v, int32_t dec) [inline],
     [static]
     Atomically subtract a 32-bit value from an atomic counter.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

     Definition at line 585 of file rte_atomic.h.

   static void rte_atomic32_inc (rte_atomic32_t * v) [inline],	[static]
     Atomically increment a counter by one.

     Parameters
	 v A pointer to the atomic counter.

   static void rte_atomic32_dec (rte_atomic32_t * v) [inline],	[static]
     Atomically decrement a counter by one.

     Parameters
	 v A pointer to the atomic counter.

   static int32_t rte_atomic32_add_return (rte_atomic32_t * v, int32_t inc) [in-
     line],  [static]
     Atomically add a 32-bit value to a counter and return the result.

     Atomically adds the 32-bits value (inc) to the atomic counter (v)	and  re-
     turns the value of v after addition.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

     Returns
	 The value of v after the addition.

     Definition at line 639 of file rte_atomic.h.

   static int32_t rte_atomic32_sub_return (rte_atomic32_t * v, int32_t dec) [in-
     line],  [static]
     Atomically subtract a 32-bit value from a counter and return the result.

     Atomically subtracts the 32-bit value (inc) from the atomic counter (v) and
     returns the value of v after the subtraction.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

     Returns
	 The value of v after the subtraction.

     Definition at line 660 of file rte_atomic.h.

   static int rte_atomic32_inc_and_test (rte_atomic32_t * v) [inline],	[static]

     Atomically increment a 32-bit counter by one and test.

     Atomically increments the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after the increment operation is 0; false otherwise.

   static int rte_atomic32_dec_and_test (rte_atomic32_t * v) [inline],	[static]

     Atomically decrement a 32-bit counter by one and test.

     Atomically decrements the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after the decrement operation is 0; false otherwise.

   static int rte_atomic32_test_and_set (rte_atomic32_t * v) [inline],	[static]

     Atomically test and set a 32-bit atomic counter.

     If  the counter value is already set, return 0 (failed). Otherwise, set the
     counter value to 1 and return 1 (success).

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 0 if failed; else 1, success.

   static void rte_atomic32_clear (rte_atomic32_t * v) [inline],  [static]
     Atomically set a 32-bit counter to 0.

     Parameters
	 v A pointer to the atomic counter.

     Definition at line 734 of file rte_atomic.h.

   static int  rte_atomic64_cmpset  (volatile  uint64_t  *  dst,  uint64_t  exp,
     uint64_t src) [inline],  [static]
     An  atomic  compare  and set function used by the mutex functions. (atomic)
     equivalent to: if (*dst == exp) *dst = src (all 64-bit words)

     Parameters
	 dst The destination into which the value will be written.
	 exp The expected value.
	 src The new value.

     Returns
	 Non-zero on success; 0 on failure.

   static uint64_t rte_atomic64_exchange (volatile uint64_t * dst, uint64_t val)
     [inline],	[static]
     Atomic exchange.

     (atomic) equivalent to: ret = *dst *dst = val; return ret;

     Parameters
	 dst The destination location into which the value will be written.
	 val The new value.

     Returns
	 The original value at that location

   static void rte_atomic64_init (rte_atomic64_t * v) [inline],  [static]
     Initialize the atomic counter.

     Parameters
	 v A pointer to the atomic counter.

   static int64_t rte_atomic64_read (rte_atomic64_t * v) [inline],  [static]
     Atomically read a 64-bit counter.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 The value of the counter.

   static void rte_atomic64_set (rte_atomic64_t *  v,  int64_t	new_value)  [in-
     line],  [static]
     Atomically set a 64-bit counter.

     Parameters
	 v A pointer to the atomic counter.
	 new_value The new value of the counter.

   static  void  rte_atomic64_add  (rte_atomic64_t  *  v, int64_t inc) [inline],
     [static]
     Atomically add a 64-bit value to a counter.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

   static void rte_atomic64_sub (rte_atomic64_t  *  v,	int64_t  dec)  [inline],
     [static]
     Atomically subtract a 64-bit value from a counter.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

   static void rte_atomic64_inc (rte_atomic64_t * v) [inline],	[static]
     Atomically increment a 64-bit counter by one and test.

     Parameters
	 v A pointer to the atomic counter.

   static void rte_atomic64_dec (rte_atomic64_t * v) [inline],	[static]
     Atomically decrement a 64-bit counter by one and test.

     Parameters
	 v A pointer to the atomic counter.

   static int64_t rte_atomic64_add_return (rte_atomic64_t * v, int64_t inc) [in-
     line],  [static]
     Add a 64-bit value to an atomic counter and return the result.

     Atomically  adds  the  64-bit value (inc) to the atomic counter (v) and re-
     turns the value of v after the addition.

     Parameters
	 v A pointer to the atomic counter.
	 inc The value to be added to the counter.

     Returns
	 The value of v after the addition.

   static int64_t rte_atomic64_sub_return (rte_atomic64_t * v, int64_t dec) [in-
     line],  [static]
     Subtract a 64-bit value from an atomic counter and return the result.

     Atomically subtracts the 64-bit value (dec) from the atomic counter (v) and
     returns the value of v after the subtraction.

     Parameters
	 v A pointer to the atomic counter.
	 dec The value to be subtracted from the counter.

     Returns
	 The value of v after the subtraction.

   static int rte_atomic64_inc_and_test (rte_atomic64_t * v) [inline],	[static]

     Atomically increment a 64-bit counter by one and test.

     Atomically increments the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after the addition is 0; false otherwise.

   static int rte_atomic64_dec_and_test (rte_atomic64_t * v) [inline],	[static]

     Atomically decrement a 64-bit counter by one and test.

     Atomically decrements the atomic counter (v) by one and returns true if the
     result is 0, or false in all other cases.

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 True if the result after subtraction is 0; false otherwise.

   static int rte_atomic64_test_and_set (rte_atomic64_t * v) [inline],	[static]

     Atomically test and set a 64-bit atomic counter.

     If the counter value is already set, return 0 (failed). Otherwise, set  the
     counter value to 1 and return 1 (success).

     Parameters
	 v A pointer to the atomic counter.

     Returns
	 0 if failed; else 1, success.

   static void rte_atomic64_clear (rte_atomic64_t * v) [inline],  [static]
     Atomically set a 64-bit counter to 0.

     Parameters
	 v A pointer to the atomic counter.

   struct __rte_aligned (16)
     128-bit integer structure.

     Definition at line 1085 of file rte_atomic.h.

   static  int	rte_atomic128_cmp_exchange  (rte_int128_t  * dst, rte_int128_t *
     exp, const rte_int128_t * src, unsigned int weak, int success, int failure)
     [inline],	[static]
     An atomic compare and set function used by  the  mutex  functions.  (Atomi-
     cally) Equivalent to:

     if (*dst == *exp)
       *dst = *src
     else
       *exp = *dst

     Note
	 This  function  is currently available for the x86-64 and aarch64 plat-
	 forms.

	 The success and failure arguments must be one of the __ATOMIC_*  values
	 defined  in the C++11 standard. For details on their behavior, refer to
	 the standard.

     Parameters
	 dst The destination into which the value will be written.
	 exp Pointer to the expected value. If the operation fails, this  memory
	 is updated with the actual value.
	 src Pointer to the new value.
	 weak  A  value of true allows the comparison to spuriously fail and al-
	 lows the 'exp' update to occur non-atomically (i.e. a torn read may oc-
	 cur). Implementations may ignore this argument and only  implement  the
	 strong variant.
	 success If successful, the operation's memory behavior conforms to this
	 (or a stronger) model.
	 failure  If  unsuccessful,  the operation's memory behavior conforms to
	 this (or a stronger) model.  This  argument  cannot  be  rte_memory_or-
	 der_release,  rte_memory_order_acq_rel,  or  a stronger model than suc-
	 cess.

     Returns
	 Non-zero on success; 0 on failure.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026		 rte_atomic.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_atomic64_exchange&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help