DPDK
2.1.0
|
#include <stdint.h>
Go to the source code of this file.
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) } |
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 83 of file rte_atomic.h.
#define RTE_ATOMIC16_INIT | ( | val | ) | { (val) } |
Static initializer for an atomic counter.
Definition at line 126 of file rte_atomic.h.
#define RTE_ATOMIC32_INIT | ( | val | ) | { (val) } |
Static initializer for an atomic counter.
Definition at line 379 of file rte_atomic.h.
#define RTE_ATOMIC64_INIT | ( | val | ) | { (val) } |
Static initializer for an atomic counter.
Definition at line 631 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. This function is architecture dependent.
|
inlinestatic |
Write memory barrier.
Guarantees that the STORE operations generated before the barrier occur before the STORE operations generated after. This function is architecture dependent.
|
inlinestatic |
Read memory barrier.
Guarantees that the LOAD operations generated before the barrier occur before the LOAD operations generated after. This function is architecture dependent.
|
inlinestatic |
Atomic compare and set.
(atomic) equivalent to: if (*dst == exp) *dst = src (all 16-bit words)
dst | The destination location into which the value will be written. |
exp | The expected value. |
src | The new value. |
|
inlinestatic |
Initialize an atomic counter.
v | A pointer to the atomic counter. |
Definition at line 135 of file rte_atomic.h.
|
inlinestatic |
Atomically read a 16-bit value from a counter.
v | A pointer to the atomic counter. |
Definition at line 149 of file rte_atomic.h.
|
inlinestatic |
Atomically set a counter to a 16-bit value.
v | A pointer to the atomic counter. |
new_value | The new value for the counter. |
Definition at line 163 of file rte_atomic.h.
|
inlinestatic |
Atomically add a 16-bit value to an atomic counter.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
Definition at line 177 of file rte_atomic.h.
|
inlinestatic |
Atomically subtract a 16-bit value from an atomic counter.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
Definition at line 191 of file rte_atomic.h.
|
inlinestatic |
Atomically increment a counter by one.
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically decrement a counter by one.
v | A pointer to the atomic counter. |
|
inlinestatic |
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 returns the value of v after addition.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
Definition at line 244 of file rte_atomic.h.
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
Definition at line 264 of file rte_atomic.h.
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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).
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically set a 16-bit counter to 0.
v | A pointer to the atomic counter. |
Definition at line 335 of file rte_atomic.h.
|
inlinestatic |
Atomic compare and set.
(atomic) equivalent to: if (*dst == exp) *dst = src (all 32-bit words)
dst | The destination location into which the value will be written. |
exp | The expected value. |
src | The new value. |
|
inlinestatic |
Initialize an atomic counter.
v | A pointer to the atomic counter. |
Definition at line 388 of file rte_atomic.h.
|
inlinestatic |
Atomically read a 32-bit value from a counter.
v | A pointer to the atomic counter. |
Definition at line 402 of file rte_atomic.h.
|
inlinestatic |
Atomically set a counter to a 32-bit value.
v | A pointer to the atomic counter. |
new_value | The new value for the counter. |
Definition at line 416 of file rte_atomic.h.
|
inlinestatic |
Atomically add a 32-bit value to an atomic counter.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
Definition at line 430 of file rte_atomic.h.
|
inlinestatic |
Atomically subtract a 32-bit value from an atomic counter.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
Definition at line 444 of file rte_atomic.h.
|
inlinestatic |
Atomically increment a counter by one.
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically decrement a counter by one.
v | A pointer to the atomic counter. |
|
inlinestatic |
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 returns the value of v after addition.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
Definition at line 497 of file rte_atomic.h.
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
Definition at line 517 of file rte_atomic.h.
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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).
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically set a 32-bit counter to 0.
v | A pointer to the atomic counter. |
Definition at line 588 of file rte_atomic.h.
|
inlinestatic |
An atomic compare and set function used by the mutex functions. (atomic) equivalent to: if (*dst == exp) *dst = src (all 64-bit words)
dst | The destination into which the value will be written. |
exp | The expected value. |
src | The new value. |
|
inlinestatic |
Initialize the atomic counter.
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically read a 64-bit counter.
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically set a 64-bit counter.
v | A pointer to the atomic counter. |
new_value | The new value of the counter. |
|
inlinestatic |
Atomically add a 64-bit value to a counter.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
|
inlinestatic |
Atomically subtract a 64-bit value from a counter.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
|
inlinestatic |
Atomically increment a 64-bit counter by one and test.
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically decrement a 64-bit counter by one and test.
v | A pointer to the atomic counter. |
|
inlinestatic |
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 returns the value of v after the addition.
v | A pointer to the atomic counter. |
inc | The value to be added to the counter. |
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
dec | The value to be subtracted from the counter. |
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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.
v | A pointer to the atomic counter. |
|
inlinestatic |
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).
v | A pointer to the atomic counter. |
|
inlinestatic |
Atomically set a 64-bit counter to 0.
v | A pointer to the atomic counter. |