vsync / atomic / core_u32.h

Atomic functions for vatomic32_t variables.

This file declares and documents the core atomic functions operating on vatomic32_t variables.

Please do not include this file directly, instead use:

#include <vsync/atomic/core.h>

Functions

Function Description
vatomic32_init Initializes the atomic variable a with value v.
vatomic32_read Returns the value of the atomic variable pointed by a.
vatomic32_read_acq Returns the value of the atomic variable pointed by a.
vatomic32_read_rlx Returns the value of the atomic variable pointed by a.
vatomic32_write Writes value v in the atomic variable pointed by a.
vatomic32_write_rel Writes value v in the atomic variable pointed by a.
vatomic32_write_rlx Writes value v in the atomic variable pointed by a.
vatomic32_xchg Writes v in a and returns old value.
vatomic32_xchg_acq Writes v in a and returns old value.
vatomic32_xchg_rel Writes v in a and returns old value.
vatomic32_xchg_rlx Writes v in a and returns old value.
vatomic32_cmpxchg Writes value v in a if e is the current value.
vatomic32_cmpxchg_acq Writes value v in a if e is the current value.
vatomic32_cmpxchg_rel Writes value v in a if e is the current value.
vatomic32_cmpxchg_rlx Writes value v in a if e is the current value.
vatomic32_get_max Writes v to a if v is greater than *a and returns the old value.
vatomic32_get_max_acq Writes v to a if v is greater than *a and returns the old value.
vatomic32_get_max_rel Writes v to a if v is greater than *a and returns the old value.
vatomic32_get_max_rlx Writes v to a if v is greater than *a and returns the old value.
vatomic32_max_get Writes v to a if v is greater than *a and returns the new value.
vatomic32_max_get_acq Writes v to a if v is greater than *a and returns the new value.
vatomic32_max_get_rel Writes v to a if v is greater than *a and returns the new value.
vatomic32_max_get_rlx Writes v to a if v is greater than *a and returns the new value.
vatomic32_max Writes v to a if v is greater than *a.
vatomic32_max_rel Writes v to a if v is greater than *a.
vatomic32_max_rlx Writes v to a if v is greater than *a.
vatomic32_get_and Applies bitwise and to the value of a and returns the old value.
vatomic32_get_and_acq Applies bitwise and to the value of a and returns the old value.
vatomic32_get_and_rel Applies bitwise and to the value of a and returns the old value.
vatomic32_get_and_rlx Applies bitwise and to the value of a and returns the old value.
vatomic32_and_get Applies bitwise and operation with v to the value of a and returns the new value.
vatomic32_and_get_acq Applies bitwise and operation with v to the value of a and returns the new value.
vatomic32_and_get_rel Applies bitwise and operation with v to the value of a and returns the new value.
vatomic32_and_get_rlx Applies bitwise and operation with v to the value of a and returns the new value.
vatomic32_and Applies bitwise and operation with v to the value of a.
vatomic32_and_rel Applies bitwise and operation with v to the value of a.
vatomic32_and_rlx Applies bitwise and operation with v to the value of a.
vatomic32_get_or Applies bitwise or operation with v to the value of a and returns the old value.
vatomic32_get_or_acq Applies bitwise or operation with v to the value of a and returns the old value.
vatomic32_get_or_rel Applies bitwise or operation with v to the value of a and returns the old value.
vatomic32_get_or_rlx Applies bitwise or operation with v to the value of a and returns the old value.
vatomic32_or_get Applies bitwise or operation with v to the value of a and returns the new value.
vatomic32_or_get_acq Applies bitwise or operation with v to the value of a and returns the new value.
vatomic32_or_get_rel Applies bitwise or operation with v to the value of a and returns the new value.
vatomic32_or_get_rlx Applies bitwise or operation with v to the value of a and returns the new value.
vatomic32_or Applies bitwise or operation with v to the value of a.
vatomic32_or_rel Applies bitwise or operation with v to the value of a.
vatomic32_or_rlx Applies bitwise or operation with v to the value of a.
vatomic32_get_xor Applies bitwise xor operation with v to the value of a and returns the old value.
vatomic32_get_xor_acq Applies bitwise xor operation with v to the value of a and returns the old value.
vatomic32_get_xor_rel Applies bitwise xor operation with v to the value of a and returns the old value.
vatomic32_get_xor_rlx Applies bitwise xor operation with v to the value of a and returns the old value.
vatomic32_xor_get Applies bitwise xor operation with v to the value of a and returns the new value.
vatomic32_xor_get_acq Applies bitwise xor operation with v to the value of a and returns the new value.
vatomic32_xor_get_rel Applies bitwise xor operation with v to the value of a and returns the new value.
vatomic32_xor_get_rlx Applies bitwise xor operation with v to the value of a and returns the new value.
vatomic32_xor Applies bitwise xor opeation with v to the value of a.
vatomic32_xor_rel Applies bitwise xor opeation with v to the value of a.
vatomic32_xor_rlx Applies bitwise xor opeation with v to the value of a.
vatomic32_get_add Adds v to the value of a and returns the old value.
vatomic32_get_add_acq Adds v to the value of a and returns the old value.
vatomic32_get_add_rel Adds v to the value of a and returns the old value.
vatomic32_get_add_rlx Adds v to the value of a and returns the old value.
vatomic32_add_get Adds v to the value of a and returns the new value.
vatomic32_add_get_acq Adds v to the value of a and returns the new value.
vatomic32_add_get_rel Adds v to the value of a and returns the new value.
vatomic32_add_get_rlx Adds v to the value of a and returns the new value.
vatomic32_add Adds v to the value of a.
vatomic32_add_rel Adds v to the value of a.
vatomic32_add_rlx Adds v to the value of a.
vatomic32_get_inc Increments the value of a and returns the old value.
vatomic32_get_inc_acq Increments the value of a and returns the old value.
vatomic32_get_inc_rel Increments the value of a and returns the old value.
vatomic32_get_inc_rlx Increments the value of a and returns the old value.
vatomic32_inc_get Increments the value of a and returns the new value.
vatomic32_inc_get_acq Increments the value of a and returns the new value.
vatomic32_inc_get_rel Increments the value of a and returns the new value.
vatomic32_inc_get_rlx Increments the value of a and returns the new value.
vatomic32_inc Increments the value of a.
vatomic32_inc_rel Increments the value of a.
vatomic32_inc_rlx Increments the value of a.
vatomic32_get_sub Subtracts v from a and returns the old value.
vatomic32_get_sub_acq Subtracts v from a and returns the old value.
vatomic32_get_sub_rel Subtracts v from a and returns the old value.
vatomic32_get_sub_rlx Subtracts v from a and returns the old value.
vatomic32_sub_get Subtracts v from a and returns the new value.
vatomic32_sub_get_acq Subtracts v from a and returns the new value.
vatomic32_sub_get_rel Subtracts v from a and returns the new value.
vatomic32_sub_get_rlx Subtracts v from a and returns the new value.
vatomic32_sub Subtracts v from a.
vatomic32_sub_rel Subtracts v from a.
vatomic32_sub_rlx Subtracts v from a.
vatomic32_get_dec Decrements the value of a and returns the old value.
vatomic32_get_dec_acq Decrements the value of a and returns the old value.
vatomic32_get_dec_rel Decrements the value of a and returns the old value.
vatomic32_get_dec_rlx Decrements the value of a and returns the old value.
vatomic32_dec_get Decrements the value of a and returns the new value.
vatomic32_dec_get_acq Decrements the value of a and returns the new value.
vatomic32_dec_get_rel Decrements the value of a and returns the new value.
vatomic32_dec_get_rlx Decrements the value of a and returns the new value.
vatomic32_dec Decrements the value of a.
vatomic32_dec_rel Decrements the value of a.
vatomic32_dec_rlx Decrements the value of a.

Function vatomic32_init

static void vatomic32_init(vatomic32_t *a, vuint32_t v)

Initializes the atomic variable a with value v.

The initialization is equivalent to an vatomic32_write().

Parameters:

  • a: atomic variable
  • v: initial value

Memory ordering: seq_cst

Function vatomic32_read

static vuint32_t vatomic32_read(const vatomic32_t *a)

Returns the value of the atomic variable pointed by a.

Parameters:

  • a: atomic variable

Returns: current value

Memory ordering: seq_cst

Function vatomic32_read_acq

static vuint32_t vatomic32_read_acq(const vatomic32_t *a)

Returns the value of the atomic variable pointed by a.

Parameters:

  • a: atomic variable

Returns: current value

Memory ordering: acquire

Function vatomic32_read_rlx

static vuint32_t vatomic32_read_rlx(const vatomic32_t *a)

Returns the value of the atomic variable pointed by a.

Parameters:

  • a: atomic variable

Returns: current value

Memory ordering: relaxed

Function vatomic32_write

static void vatomic32_write(vatomic32_t *a, vuint32_t v)

Writes value v in the atomic variable pointed by a.

Parameters:

  • a: atomic variable
  • v: new value

Memory ordering: seq_cst

Function vatomic32_write_rel

static void vatomic32_write_rel(vatomic32_t *a, vuint32_t v)

Writes value v in the atomic variable pointed by a.

Parameters:

  • a: atomic variable
  • v: new value

Memory ordering: release

Function vatomic32_write_rlx

static void vatomic32_write_rlx(vatomic32_t *a, vuint32_t v)

Writes value v in the atomic variable pointed by a.

Parameters:

  • a: atomic variable
  • v: new value

Memory ordering: relaxed

Function vatomic32_xchg

static vuint32_t vatomic32_xchg(vatomic32_t *a, vuint32_t v)

Writes v in a and returns old value.

Parameters:

  • a: atomic variable
  • v: new value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_xchg_acq

static vuint32_t vatomic32_xchg_acq(vatomic32_t *a, vuint32_t v)

Writes v in a and returns old value.

Parameters:

  • a: atomic variable
  • v: new value

Returns: old value

Memory ordering: acquire

Function vatomic32_xchg_rel

static vuint32_t vatomic32_xchg_rel(vatomic32_t *a, vuint32_t v)

Writes v in a and returns old value.

Parameters:

  • a: atomic variable
  • v: new value

Returns: old value

Memory ordering: release

Function vatomic32_xchg_rlx

static vuint32_t vatomic32_xchg_rlx(vatomic32_t *a, vuint32_t v)

Writes v in a and returns old value.

Parameters:

  • a: atomic variable
  • v: new value

Returns: old value

Memory ordering: relaxed

Function vatomic32_cmpxchg

static vuint32_t vatomic32_cmpxchg(vatomic32_t *a, vuint32_t e, vuint32_t v)

Writes value v in a if e is the current value.

Parameters:

  • a: atomic variable
  • e: expected value
  • v: new value

Returns: old value

Function vatomic32_cmpxchg_acq

static vuint32_t vatomic32_cmpxchg_acq(vatomic32_t *a, vuint32_t e, vuint32_t v)

Writes value v in a if e is the current value.

Parameters:

  • a: atomic variable
  • e: expected value
  • v: new value

Returns: old value

Function vatomic32_cmpxchg_rel

static vuint32_t vatomic32_cmpxchg_rel(vatomic32_t *a, vuint32_t e, vuint32_t v)

Writes value v in a if e is the current value.

Parameters:

  • a: atomic variable
  • e: expected value
  • v: new value

Returns: old value

Function vatomic32_cmpxchg_rlx

static vuint32_t vatomic32_cmpxchg_rlx(vatomic32_t *a, vuint32_t e, vuint32_t v)

Writes value v in a if e is the current value.

Parameters:

  • a: atomic variable
  • e: expected value
  • v: new value

Returns: old value

Function vatomic32_get_max

static vuint32_t vatomic32_get_max(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the old value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: old max value

Memory ordering: seq_cst

Function vatomic32_get_max_acq

static vuint32_t vatomic32_get_max_acq(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the old value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: old max value

Memory ordering: acquire

Function vatomic32_get_max_rel

static vuint32_t vatomic32_get_max_rel(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the old value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: old max value

Memory ordering: release

Function vatomic32_get_max_rlx

static vuint32_t vatomic32_get_max_rlx(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the old value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: old max value

Memory ordering: relaxed

Function vatomic32_max_get

static vuint32_t vatomic32_max_get(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the new value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: new max value

Memory ordering: seq_cst

Function vatomic32_max_get_acq

static vuint32_t vatomic32_max_get_acq(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the new value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: new max value

Memory ordering: acquire

Function vatomic32_max_get_rel

static vuint32_t vatomic32_max_get_rel(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the new value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: new max value

Memory ordering: release

Function vatomic32_max_get_rlx

static vuint32_t vatomic32_max_get_rlx(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a and returns the new value.

Parameters:

  • a: atomic variable
  • v: potential max value

Returns: new max value

Memory ordering: relaxed

Function vatomic32_max

static void vatomic32_max(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a.

Parameters:

  • a: atomic variable
  • v: potential max value

Memory ordering: seq_cst

Function vatomic32_max_rel

static void vatomic32_max_rel(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a.

Parameters:

  • a: atomic variable
  • v: potential max value

Memory ordering: release

Function vatomic32_max_rlx

static void vatomic32_max_rlx(vatomic32_t *a, vuint32_t v)

Writes v to a if v is greater than *a.

Parameters:

  • a: atomic variable
  • v: potential max value

Memory ordering: relaxed

Function vatomic32_get_and

static vuint32_t vatomic32_get_and(vatomic32_t *a, vuint32_t v)

Applies bitwise and to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_and_acq

static vuint32_t vatomic32_get_and_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise and to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: acquire

Function vatomic32_get_and_rel

static vuint32_t vatomic32_get_and_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise and to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: release

Function vatomic32_get_and_rlx

static vuint32_t vatomic32_get_and_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise and to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: relaxed

Function vatomic32_and_get

static vuint32_t vatomic32_and_get(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: seq_cst

Function vatomic32_and_get_acq

static vuint32_t vatomic32_and_get_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: acquire

Function vatomic32_and_get_rel

static vuint32_t vatomic32_and_get_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: release

Function vatomic32_and_get_rlx

static vuint32_t vatomic32_and_get_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: relaxed

Function vatomic32_and

static void vatomic32_and(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: seq_cst

Function vatomic32_and_rel

static void vatomic32_and_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: release

Function vatomic32_and_rlx

static void vatomic32_and_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise and operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: relaxed

Function vatomic32_get_or

static vuint32_t vatomic32_get_or(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_or_acq

static vuint32_t vatomic32_get_or_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: acquire

Function vatomic32_get_or_rel

static vuint32_t vatomic32_get_or_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: release

Function vatomic32_get_or_rlx

static vuint32_t vatomic32_get_or_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: relaxed

Function vatomic32_or_get

static vuint32_t vatomic32_or_get(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: seq_cst

Function vatomic32_or_get_acq

static vuint32_t vatomic32_or_get_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: acquire

Function vatomic32_or_get_rel

static vuint32_t vatomic32_or_get_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: release

Function vatomic32_or_get_rlx

static vuint32_t vatomic32_or_get_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: relaxed

Function vatomic32_or

static void vatomic32_or(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: seq_cst

Function vatomic32_or_rel

static void vatomic32_or_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: release

Function vatomic32_or_rlx

static void vatomic32_or_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise or operation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: relaxed

Function vatomic32_get_xor

static vuint32_t vatomic32_get_xor(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_xor_acq

static vuint32_t vatomic32_get_xor_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: acquire

Function vatomic32_get_xor_rel

static vuint32_t vatomic32_get_xor_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: release

Function vatomic32_get_xor_rlx

static vuint32_t vatomic32_get_xor_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: old value

Memory ordering: relaxed

Function vatomic32_xor_get

static vuint32_t vatomic32_xor_get(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: seq_cst

Function vatomic32_xor_get_acq

static vuint32_t vatomic32_xor_get_acq(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: acquire

Function vatomic32_xor_get_rel

static vuint32_t vatomic32_xor_get_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: release

Function vatomic32_xor_get_rlx

static vuint32_t vatomic32_xor_get_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise xor operation with v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: mask value

Returns: new value

Memory ordering: relaxed

Function vatomic32_xor

static void vatomic32_xor(vatomic32_t *a, vuint32_t v)

Applies bitwise xor opeation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: seq_cst

Function vatomic32_xor_rel

static void vatomic32_xor_rel(vatomic32_t *a, vuint32_t v)

Applies bitwise xor opeation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: release

Function vatomic32_xor_rlx

static void vatomic32_xor_rlx(vatomic32_t *a, vuint32_t v)

Applies bitwise xor opeation with v to the value of a.

Parameters:

  • a: atomic variable
  • v: mask value

Memory ordering: relaxed

Function vatomic32_get_add

static vuint32_t vatomic32_get_add(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_add_acq

static vuint32_t vatomic32_get_add_acq(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: old value

Memory ordering: acquire

Function vatomic32_get_add_rel

static vuint32_t vatomic32_get_add_rel(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: old value

Memory ordering: release

Function vatomic32_get_add_rlx

static vuint32_t vatomic32_get_add_rlx(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the old value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: old value

Memory ordering: relaxed

Function vatomic32_add_get

static vuint32_t vatomic32_add_get(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: new value

Memory ordering: seq_cst

Function vatomic32_add_get_acq

static vuint32_t vatomic32_add_get_acq(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: new value

Memory ordering: acquire

Function vatomic32_add_get_rel

static vuint32_t vatomic32_add_get_rel(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: new value

Memory ordering: release

Function vatomic32_add_get_rlx

static vuint32_t vatomic32_add_get_rlx(vatomic32_t *a, vuint32_t v)

Adds v to the value of a and returns the new value.

Parameters:

  • a: atomic variable
  • v: addend value

Returns: new value

Memory ordering: relaxed

Function vatomic32_add

static void vatomic32_add(vatomic32_t *a, vuint32_t v)

Adds v to the value of a.

Parameters:

  • a: atomic variable
  • v: addend value

Memory ordering: seq_cst

Function vatomic32_add_rel

static void vatomic32_add_rel(vatomic32_t *a, vuint32_t v)

Adds v to the value of a.

Parameters:

  • a: atomic variable
  • v: addend value

Memory ordering: release

Function vatomic32_add_rlx

static void vatomic32_add_rlx(vatomic32_t *a, vuint32_t v)

Adds v to the value of a.

Parameters:

  • a: atomic variable
  • v: addend value

Memory ordering: relaxed

Function vatomic32_get_inc

static vuint32_t vatomic32_get_inc(vatomic32_t *a)

Increments the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_inc_acq

static vuint32_t vatomic32_get_inc_acq(vatomic32_t *a)

Increments the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: acquire

Function vatomic32_get_inc_rel

static vuint32_t vatomic32_get_inc_rel(vatomic32_t *a)

Increments the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: release

Function vatomic32_get_inc_rlx

static vuint32_t vatomic32_get_inc_rlx(vatomic32_t *a)

Increments the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: relaxed

Function vatomic32_inc_get

static vuint32_t vatomic32_inc_get(vatomic32_t *a)

Increments the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: seq_cst

Function vatomic32_inc_get_acq

static vuint32_t vatomic32_inc_get_acq(vatomic32_t *a)

Increments the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: acquire

Function vatomic32_inc_get_rel

static vuint32_t vatomic32_inc_get_rel(vatomic32_t *a)

Increments the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: release

Function vatomic32_inc_get_rlx

static vuint32_t vatomic32_inc_get_rlx(vatomic32_t *a)

Increments the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: relaxed

Function vatomic32_inc

static void vatomic32_inc(vatomic32_t *a)

Increments the value of a.

Parameters:

  • a: atomic variable

Memory ordering: seq_cst

Function vatomic32_inc_rel

static void vatomic32_inc_rel(vatomic32_t *a)

Increments the value of a.

Parameters:

  • a: atomic variable

Memory ordering: release

Function vatomic32_inc_rlx

static void vatomic32_inc_rlx(vatomic32_t *a)

Increments the value of a.

Parameters:

  • a: atomic variable

Memory ordering: relaxed

Function vatomic32_get_sub

static vuint32_t vatomic32_get_sub(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the old value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_sub_acq

static vuint32_t vatomic32_get_sub_acq(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the old value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: old value

Memory ordering: acquire

Function vatomic32_get_sub_rel

static vuint32_t vatomic32_get_sub_rel(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the old value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: old value

Memory ordering: release

Function vatomic32_get_sub_rlx

static vuint32_t vatomic32_get_sub_rlx(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the old value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: old value

Memory ordering: relaxed

Function vatomic32_sub_get

static vuint32_t vatomic32_sub_get(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the new value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: new value

Memory ordering: seq_cst

Function vatomic32_sub_get_acq

static vuint32_t vatomic32_sub_get_acq(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the new value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: new value

Memory ordering: acquire

Function vatomic32_sub_get_rel

static vuint32_t vatomic32_sub_get_rel(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the new value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: new value

Memory ordering: release

Function vatomic32_sub_get_rlx

static vuint32_t vatomic32_sub_get_rlx(vatomic32_t *a, vuint32_t v)

Subtracts v from a and returns the new value.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Returns: new value

Memory ordering: relaxed

Function vatomic32_sub

static void vatomic32_sub(vatomic32_t *a, vuint32_t v)

Subtracts v from a.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Memory ordering: seq_cst

Function vatomic32_sub_rel

static void vatomic32_sub_rel(vatomic32_t *a, vuint32_t v)

Subtracts v from a.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Memory ordering: release

Function vatomic32_sub_rlx

static void vatomic32_sub_rlx(vatomic32_t *a, vuint32_t v)

Subtracts v from a.

Parameters:

  • a: atomic variable
  • v: subtrahend value

Memory ordering: relaxed

Function vatomic32_get_dec

static vuint32_t vatomic32_get_dec(vatomic32_t *a)

Decrements the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: seq_cst

Function vatomic32_get_dec_acq

static vuint32_t vatomic32_get_dec_acq(vatomic32_t *a)

Decrements the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: acquire

Function vatomic32_get_dec_rel

static vuint32_t vatomic32_get_dec_rel(vatomic32_t *a)

Decrements the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: release

Function vatomic32_get_dec_rlx

static vuint32_t vatomic32_get_dec_rlx(vatomic32_t *a)

Decrements the value of a and returns the old value.

Parameters:

  • a: atomic variable

Returns: old value

Memory ordering: relaxed

Function vatomic32_dec_get

static vuint32_t vatomic32_dec_get(vatomic32_t *a)

Decrements the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: seq_cst

Function vatomic32_dec_get_acq

static vuint32_t vatomic32_dec_get_acq(vatomic32_t *a)

Decrements the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: acquire

Function vatomic32_dec_get_rel

static vuint32_t vatomic32_dec_get_rel(vatomic32_t *a)

Decrements the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: release

Function vatomic32_dec_get_rlx

static vuint32_t vatomic32_dec_get_rlx(vatomic32_t *a)

Decrements the value of a and returns the new value.

Parameters:

  • a: atomic variable

Returns: new value

Memory ordering: relaxed

Function vatomic32_dec

static void vatomic32_dec(vatomic32_t *a)

Decrements the value of a.

Parameters:

  • a: atomic variable

Memory ordering: seq_cst

Function vatomic32_dec_rel

static void vatomic32_dec_rel(vatomic32_t *a)

Decrements the value of a.

Parameters:

  • a: atomic variable

Memory ordering: release

Function vatomic32_dec_rlx

static void vatomic32_dec_rlx(vatomic32_t *a)

Decrements the value of a.

Parameters:

  • a: atomic variable

Memory ordering: relaxed