objc

Data Structures | Functions | Variables
atomic.h File Reference

Simple atomic uint32_t API (get, set, increment, decrement). More...

#include <stdbool.h>
#include <stdint.h>
Include dependency graph for atomic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sys_atomic_t
 Underlying atomic uint32_t value. More...
 

Functions

struct sys_atomic_t __attribute__ ((aligned(4)))
 Underlying atomic uint32_t value. More...
 
static void sys_atomic_init (sys_atomic_t *a, uint32_t initial)
 Initialize an atomic with an initial value. More...
 
static uint32_t sys_atomic_get (const sys_atomic_t *a)
 Load the current value atomically. More...
 
static void sys_atomic_set (sys_atomic_t *a, uint32_t v)
 Store a new value atomically. More...
 
static uint32_t sys_atomic_inc (sys_atomic_t *a)
 Atomically increment and return the new value. More...
 
static uint32_t sys_atomic_dec (sys_atomic_t *a)
 Atomically decrement and return the new value. More...
 
static void sys_atomic_set_bits (sys_atomic_t *a, uint32_t mask)
 Atomically set bits (OR with mask). More...
 
static void sys_atomic_clear_bits (sys_atomic_t *a, uint32_t mask)
 Atomically clear bits (AND with ~mask). More...
 

Variables

uint32_t value
 

Detailed Description

Simple atomic uint32_t API (get, set, increment, decrement).

Implements atomic values which can be safely updated across threads.

This API allows you to maintain a uint32_t value across threads safely. The operations are to get, set, increment and decrement. For the increment and decrement operations return the new value.

Definition in file atomic.h.