nRF5 SDK v13.0.0
Modules | Functions
Atomic operations API

This module implements C11 stdatomic.h simplified API. At this point only Cortex-M3/M4 cores are supported (LDREX/STREX instructions). Atomic types are limited to nrf_atomic_u32_t and nrf_atomic_flag_t. More...

Modules

 Atomic operations internals
 

Functions

static uint32_t nrf_atomic_u32_store_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Stores value to an atomic object. More...
 
static uint32_t nrf_atomic_u32_store (nrf_atomic_u32_t *p_data, uint32_t value)
 Stores value to an atomic object. More...
 
static uint32_t nrf_atomic_u32_or_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical OR operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_or (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical OR operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_and_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical AND operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_and (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical AND operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_xor_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical XOR operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_xor (nrf_atomic_u32_t *p_data, uint32_t value)
 Logical XOR operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_add_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Arithmetic ADD operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_add (nrf_atomic_u32_t *p_data, uint32_t value)
 Arithmetic ADD operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_sub_fetch (nrf_atomic_u32_t *p_data, uint32_t value)
 Arithmetic SUB operation on an atomic object. More...
 
static uint32_t nrf_atomic_u32_sub (nrf_atomic_u32_t *p_data, uint32_t value)
 Arithmetic SUB operation on an atomic object. More...
 
static uint32_t nrf_atomic_flag_set_fetch (nrf_atomic_flag_t *p_data)
 Logic one bit flag set operation on an atomic object. More...
 
static uint32_t nrf_atomic_flag_set (nrf_atomic_flag_t *p_data)
 Logic one bit flag set operation on an atomic object. More...
 
static uint32_t nrf_atomic_flag_clear_fetch (nrf_atomic_flag_t *p_data)
 Logic one bit flag clear operation on an atomic object. More...
 
static uint32_t nrf_atomic_flag_clear (nrf_atomic_flag_t *p_data)
 Logic one bit flag clear operation on an atomic object. More...
 

Detailed Description

This module implements C11 stdatomic.h simplified API. At this point only Cortex-M3/M4 cores are supported (LDREX/STREX instructions). Atomic types are limited to nrf_atomic_u32_t and nrf_atomic_flag_t.

Function Documentation

static uint32_t nrf_atomic_flag_clear ( nrf_atomic_flag_t p_data)
inlinestatic

Logic one bit flag clear operation on an atomic object.

Parameters
[in]p_dataAtomic flag memory pointer
Returns
New flag value
static uint32_t nrf_atomic_flag_clear_fetch ( nrf_atomic_flag_t p_data)
inlinestatic

Logic one bit flag clear operation on an atomic object.

Parameters
[in]p_dataAtomic flag memory pointer
Returns
Old flag value
static uint32_t nrf_atomic_flag_set ( nrf_atomic_flag_t p_data)
inlinestatic

Logic one bit flag set operation on an atomic object.

Parameters
[in]p_dataAtomic flag memory pointer
Returns
New flag value
static uint32_t nrf_atomic_flag_set_fetch ( nrf_atomic_flag_t p_data)
inlinestatic

Logic one bit flag set operation on an atomic object.

Parameters
[in]p_dataAtomic flag memory pointer
Returns
Old flag value
static uint32_t nrf_atomic_u32_add ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Arithmetic ADD operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand ADD operation
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_add_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Arithmetic ADD operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand ADD operation
Returns
Old value stored into atomic object
static uint32_t nrf_atomic_u32_and ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical AND operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand AND operation
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_and_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical AND operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand AND operation
Returns
Old value stored into atomic object
static uint32_t nrf_atomic_u32_or ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical OR operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand OR operation
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_or_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical OR operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand OR operation
Returns
Old value stored into atomic object
static uint32_t nrf_atomic_u32_store ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Stores value to an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue to store
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_store_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Stores value to an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue to store
Returns
Old value stored into atomic object
static uint32_t nrf_atomic_u32_sub ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Arithmetic SUB operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand SUB operation
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_sub_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Arithmetic SUB operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand SUB operation
Returns
Old value stored into atomic object
static uint32_t nrf_atomic_u32_xor ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical XOR operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand XOR operation
Returns
New value stored into atomic object
static uint32_t nrf_atomic_u32_xor_fetch ( nrf_atomic_u32_t p_data,
uint32_t  value 
)
inlinestatic

Logical XOR operation on an atomic object.

Parameters
[in]p_dataAtomic memory pointer
[in]valueValue of second operand XOR operation
Returns
Old value stored into atomic object

Documentation feedback | Developer Zone | Subscribe | Updated