#include <stdint.h>
#include <assert.h>
#include <rte_common.h>
#include <rte_atomic.h>
#include <rte_compat.h>
Go to the source code of this file.
CPU pause operation.
Definition in file rte_pause.h.
◆ rte_pause()
static void rte_pause |
( |
void |
| ) |
|
|
inlinestatic |
◆ rte_wait_until_equal_16()
static __rte_always_inline void rte_wait_until_equal_16 |
( |
volatile uint16_t * |
addr, |
|
|
uint16_t |
expected, |
|
|
int |
memorder |
|
) |
| |
|
static |
Wait for *addr to be updated with a 16-bit expected value, with a relaxed memory ordering model meaning the loads around this API can be reordered.
- Parameters
-
addr | A pointer to the memory location. |
expected | A 16-bit expected value to be in the memory location. |
memorder | Two different memory orders that can be specified: __ATOMIC_ACQUIRE and __ATOMIC_RELAXED. These map to C++11 memory orders with the same names, see the C++11 standard or the GCC wiki on atomic synchronization for detailed definition. |
- Examples:
- examples/performance-thread/l3fwd-thread/main.c.
Definition at line 86 of file rte_pause.h.
◆ rte_wait_until_equal_32()
static __rte_always_inline void rte_wait_until_equal_32 |
( |
volatile uint32_t * |
addr, |
|
|
uint32_t |
expected, |
|
|
int |
memorder |
|
) |
| |
|
static |
Wait for *addr to be updated with a 32-bit expected value, with a relaxed memory ordering model meaning the loads around this API can be reordered.
- Parameters
-
addr | A pointer to the memory location. |
expected | A 32-bit expected value to be in the memory location. |
memorder | Two different memory orders that can be specified: __ATOMIC_ACQUIRE and __ATOMIC_RELAXED. These map to C++11 memory orders with the same names, see the C++11 standard or the GCC wiki on atomic synchronization for detailed definition. |
Definition at line 96 of file rte_pause.h.
◆ rte_wait_until_equal_64()
static __rte_always_inline void rte_wait_until_equal_64 |
( |
volatile uint64_t * |
addr, |
|
|
uint64_t |
expected, |
|
|
int |
memorder |
|
) |
| |
|
static |
Wait for *addr to be updated with a 64-bit expected value, with a relaxed memory ordering model meaning the loads around this API can be reordered.
- Parameters
-
addr | A pointer to the memory location. |
expected | A 64-bit expected value to be in the memory location. |
memorder | Two different memory orders that can be specified: __ATOMIC_ACQUIRE and __ATOMIC_RELAXED. These map to C++11 memory orders with the same names, see the C++11 standard or the GCC wiki on atomic synchronization for detailed definition. |
Definition at line 106 of file rte_pause.h.