|
DPDK 26.11.0-rc1
|
Go to the source code of this file.
Macros | |
| #define | rte_compiler_barrier() |
Functions | |
| static void | rte_atomic_thread_fence (rte_memory_order memorder) |
| 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) |
I/O Memory Barrier | |
| static void | rte_io_mb (void) |
| static void | rte_io_wmb (void) |
| static void | rte_io_rmb (void) |
Atomic Operations
This file defines a generic API for atomic operations.
Definition in file rte_atomic.h.
| #define rte_compiler_barrier | ( | ) |
Compiler barrier.
Guarantees that operation reordering does not occur at compile time for operations directly before and after the barrier.
Definition at line 96 of file rte_atomic.h.
|
inlinestatic |
General memory barrier.
Guarantees that the LOAD and STORE operations generated before the barrier occur before the LOAD and STORE operations generated after.
|
inlinestatic |
Write memory barrier.
Guarantees that the STORE operations generated before the barrier occur before the STORE operations generated after.
|
inlinestatic |
Read memory barrier.
Guarantees that the LOAD operations generated before the barrier occur before the LOAD operations generated after.
|
inlinestatic |
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.
|
inlinestatic |
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.
|
inlinestatic |
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.
|
inlinestatic |
Synchronization fence between threads based on the specified memory order.
| struct __rte_aligned | ( | 16 | ) |
128-bit integer structure.
Definition at line 104 of file rte_atomic.h.
|
inlinestatic |
An atomic compare and set function used by the mutex functions. (Atomically) Equivalent to:
| 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 allows the 'exp' update to occur non-atomically (i.e. a torn read may occur). 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_order_release, rte_memory_order_acq_rel, or a stronger model than success. |