DPDK 25.11.3
Loading...
Searching...
No Matches
rte_pause.h File Reference
#include <stdint.h>
#include <assert.h>
#include <rte_common.h>
#include <rte_atomic.h>
#include <rte_stdatomic.h>

Go to the source code of this file.

Functions

static void rte_pause (void)
static __rte_always_inline void rte_wait_until_equal_16 (volatile uint16_t *addr, uint16_t expected, rte_memory_order memorder)
static __rte_always_inline void rte_wait_until_equal_32 (volatile uint32_t *addr, uint32_t expected, rte_memory_order memorder)
static __rte_always_inline void rte_wait_until_equal_64 (volatile uint64_t *addr, uint64_t expected, rte_memory_order memorder)

Detailed Description

CPU pause operation.

Definition in file rte_pause.h.

Function Documentation

◆ rte_pause()

void rte_pause ( void )
inlinestatic

Pause CPU execution for a short while

This call is intended for tight loops which poll a shared resource or wait for an event. A short pause within the loop may reduce the power consumption.

◆ rte_wait_until_equal_16()

__rte_always_inline void rte_wait_until_equal_16 ( volatile uint16_t * addr,
uint16_t expected,
rte_memory_order 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
addrA pointer to the memory location.
expectedA 16-bit expected value to be in the memory location.
memorderTwo different memory orders that can be specified: rte_memory_order_acquire and rte_memory_order_relaxed.

Definition at line 84 of file rte_pause.h.

◆ rte_wait_until_equal_32()

__rte_always_inline void rte_wait_until_equal_32 ( volatile uint32_t * addr,
uint32_t expected,
rte_memory_order 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
addrA pointer to the memory location.
expectedA 32-bit expected value to be in the memory location.
memorderTwo different memory orders that can be specified: rte_memory_order_acquire and rte_memory_order_relaxed.

Definition at line 95 of file rte_pause.h.

◆ rte_wait_until_equal_64()

__rte_always_inline void rte_wait_until_equal_64 ( volatile uint64_t * addr,
uint64_t expected,
rte_memory_order 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
addrA pointer to the memory location.
expectedA 64-bit expected value to be in the memory location.
memorderTwo different memory orders that can be specified: rte_memory_order_acquire and rte_memory_order_relaxed.

Definition at line 106 of file rte_pause.h.