FFmpeg  4.0
Macros | Typedefs | Functions
stdatomic.h File Reference
#include <stdint.h>

Go to the source code of this file.

Macros

#define ATOMIC_FLAG_INIT   0
 
#define ATOMIC_VAR_INIT(value)   (value)
 
#define atomic_init(obj, value)
 
#define kill_dependency(y)   ((void)0)
 
#define atomic_signal_fence(order)   ((void)0)
 
#define atomic_is_lock_free(obj)   0
 
#define atomic_store_explicit(object, desired, order)   atomic_store(object, desired)
 
#define atomic_load_explicit(object, order)   atomic_load(object)
 
#define atomic_exchange_explicit(object, desired, order)   atomic_exchange(object, desired)
 
#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure)   atomic_compare_exchange_strong(object, expected, desired)
 
#define atomic_compare_exchange_weak(object, expected, desired)   atomic_compare_exchange_strong(object, expected, desired)
 
#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure)   atomic_compare_exchange_weak(object, expected, desired)
 
#define FETCH_MODIFY(opname, op)
 
#define atomic_fetch_add_explicit(object, operand, order)   atomic_fetch_add(object, operand)
 
#define atomic_fetch_sub_explicit(object, operand, order)   atomic_fetch_sub(object, operand)
 
#define atomic_fetch_or_explicit(object, operand, order)   atomic_fetch_or(object, operand)
 
#define atomic_fetch_xor_explicit(object, operand, order)   atomic_fetch_xor(object, operand)
 
#define atomic_fetch_and_explicit(object, operand, order)   atomic_fetch_and(object, operand)
 
#define atomic_flag_test_and_set(object)   atomic_exchange(object, 1)
 
#define atomic_flag_test_and_set_explicit(object, order)   atomic_flag_test_and_set(object)
 
#define atomic_flag_clear(object)   atomic_store(object, 0)
 
#define atomic_flag_clear_explicit(object, order)   atomic_flag_clear(object)
 

Typedefs

typedef intptr_t atomic_flag
 
typedef intptr_t atomic_bool
 
typedef intptr_t atomic_char
 
typedef intptr_t atomic_schar
 
typedef intptr_t atomic_uchar
 
typedef intptr_t atomic_short
 
typedef intptr_t atomic_ushort
 
typedef intptr_t atomic_int
 
typedef intptr_t atomic_uint
 
typedef intptr_t atomic_long
 
typedef intptr_t atomic_ulong
 
typedef intptr_t atomic_llong
 
typedef intptr_t atomic_ullong
 
typedef intptr_t atomic_wchar_t
 
typedef intptr_t atomic_int_least8_t
 
typedef intptr_t atomic_uint_least8_t
 
typedef intptr_t atomic_int_least16_t
 
typedef intptr_t atomic_uint_least16_t
 
typedef intptr_t atomic_int_least32_t
 
typedef intptr_t atomic_uint_least32_t
 
typedef intptr_t atomic_int_least64_t
 
typedef intptr_t atomic_uint_least64_t
 
typedef intptr_t atomic_int_fast8_t
 
typedef intptr_t atomic_uint_fast8_t
 
typedef intptr_t atomic_int_fast16_t
 
typedef intptr_t atomic_uint_fast16_t
 
typedef intptr_t atomic_int_fast32_t
 
typedef intptr_t atomic_uint_fast32_t
 
typedef intptr_t atomic_int_fast64_t
 
typedef intptr_t atomic_uint_fast64_t
 
typedef intptr_t atomic_intptr_t
 
typedef intptr_t atomic_uintptr_t
 
typedef intptr_t atomic_size_t
 
typedef intptr_t atomic_ptrdiff_t
 
typedef intptr_t atomic_intmax_t
 
typedef intptr_t atomic_uintmax_t
 

Functions

void avpriv_atomic_lock (void)
 
void avpriv_atomic_unlock (void)
 
static void atomic_thread_fence (int order)
 
static void atomic_store (intptr_t *object, intptr_t desired)
 
static intptr_t atomic_load (intptr_t *object)
 
static intptr_t atomic_exchange (intptr_t *object, intptr_t desired)
 
static int atomic_compare_exchange_strong (intptr_t *object, intptr_t *expected, intptr_t desired)
 

Macro Definition Documentation

◆ ATOMIC_FLAG_INIT

#define ATOMIC_FLAG_INIT   0

Definition at line 29 of file stdatomic.h.

◆ ATOMIC_VAR_INIT

#define ATOMIC_VAR_INIT (   value)    (value)

Definition at line 31 of file stdatomic.h.

◆ atomic_init

#define atomic_init (   obj,
  value 
)
Value:
do { \
*(obj) = (value); \
} while(0)
double value
Definition: eval.c:98

Definition at line 33 of file stdatomic.h.

◆ kill_dependency

#define kill_dependency (   y)    ((void)0)

Definition at line 38 of file stdatomic.h.

◆ atomic_signal_fence

#define atomic_signal_fence (   order)    ((void)0)

Definition at line 40 of file stdatomic.h.

◆ atomic_is_lock_free

#define atomic_is_lock_free (   obj)    0

Definition at line 43 of file stdatomic.h.

◆ atomic_store_explicit

#define atomic_store_explicit (   object,
  desired,
  order 
)    atomic_store(object, desired)

Definition at line 98 of file stdatomic.h.

◆ atomic_load_explicit

#define atomic_load_explicit (   object,
  order 
)    atomic_load(object)

Definition at line 110 of file stdatomic.h.

◆ atomic_exchange_explicit

#define atomic_exchange_explicit (   object,
  desired,
  order 
)    atomic_exchange(object, desired)

Definition at line 123 of file stdatomic.h.

◆ atomic_compare_exchange_strong_explicit

#define atomic_compare_exchange_strong_explicit (   object,
  expected,
  desired,
  success,
  failure 
)    atomic_compare_exchange_strong(object, expected, desired)

Definition at line 142 of file stdatomic.h.

◆ atomic_compare_exchange_weak

#define atomic_compare_exchange_weak (   object,
  expected,
  desired 
)    atomic_compare_exchange_strong(object, expected, desired)

Definition at line 145 of file stdatomic.h.

◆ atomic_compare_exchange_weak_explicit

#define atomic_compare_exchange_weak_explicit (   object,
  expected,
  desired,
  success,
  failure 
)    atomic_compare_exchange_weak(object, expected, desired)

Definition at line 148 of file stdatomic.h.

◆ FETCH_MODIFY

#define FETCH_MODIFY (   opname,
  op 
)
Value:
static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
{ \
intptr_t ret; \
avpriv_atomic_lock(); \
ret = *object; \
*object = *object op operand; \
avpriv_atomic_unlock(); \
return ret; \
}
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition: anm.c:78

Definition at line 151 of file stdatomic.h.

◆ atomic_fetch_add_explicit

#define atomic_fetch_add_explicit (   object,
  operand,
  order 
)    atomic_fetch_add(object, operand)

Definition at line 170 of file stdatomic.h.

◆ atomic_fetch_sub_explicit

#define atomic_fetch_sub_explicit (   object,
  operand,
  order 
)    atomic_fetch_sub(object, operand)

Definition at line 173 of file stdatomic.h.

◆ atomic_fetch_or_explicit

#define atomic_fetch_or_explicit (   object,
  operand,
  order 
)    atomic_fetch_or(object, operand)

Definition at line 176 of file stdatomic.h.

◆ atomic_fetch_xor_explicit

#define atomic_fetch_xor_explicit (   object,
  operand,
  order 
)    atomic_fetch_xor(object, operand)

Definition at line 179 of file stdatomic.h.

◆ atomic_fetch_and_explicit

#define atomic_fetch_and_explicit (   object,
  operand,
  order 
)    atomic_fetch_and(object, operand)

Definition at line 182 of file stdatomic.h.

◆ atomic_flag_test_and_set

#define atomic_flag_test_and_set (   object)    atomic_exchange(object, 1)

Definition at line 185 of file stdatomic.h.

◆ atomic_flag_test_and_set_explicit

#define atomic_flag_test_and_set_explicit (   object,
  order 
)    atomic_flag_test_and_set(object)

Definition at line 188 of file stdatomic.h.

◆ atomic_flag_clear

#define atomic_flag_clear (   object)    atomic_store(object, 0)

Definition at line 191 of file stdatomic.h.

◆ atomic_flag_clear_explicit

#define atomic_flag_clear_explicit (   object,
  order 
)    atomic_flag_clear(object)

Definition at line 194 of file stdatomic.h.

Typedef Documentation

◆ atomic_flag

typedef intptr_t atomic_flag

Definition at line 45 of file stdatomic.h.

◆ atomic_bool

typedef intptr_t atomic_bool

Definition at line 46 of file stdatomic.h.

◆ atomic_char

typedef intptr_t atomic_char

Definition at line 47 of file stdatomic.h.

◆ atomic_schar

typedef intptr_t atomic_schar

Definition at line 48 of file stdatomic.h.

◆ atomic_uchar

typedef intptr_t atomic_uchar

Definition at line 49 of file stdatomic.h.

◆ atomic_short

typedef intptr_t atomic_short

Definition at line 50 of file stdatomic.h.

◆ atomic_ushort

typedef intptr_t atomic_ushort

Definition at line 51 of file stdatomic.h.

◆ atomic_int

typedef intptr_t atomic_int

Definition at line 52 of file stdatomic.h.

◆ atomic_uint

typedef intptr_t atomic_uint

Definition at line 53 of file stdatomic.h.

◆ atomic_long

typedef intptr_t atomic_long

Definition at line 54 of file stdatomic.h.

◆ atomic_ulong

typedef intptr_t atomic_ulong

Definition at line 55 of file stdatomic.h.

◆ atomic_llong

typedef intptr_t atomic_llong

Definition at line 56 of file stdatomic.h.

◆ atomic_ullong

typedef intptr_t atomic_ullong

Definition at line 57 of file stdatomic.h.

◆ atomic_wchar_t

typedef intptr_t atomic_wchar_t

Definition at line 58 of file stdatomic.h.

◆ atomic_int_least8_t

typedef intptr_t atomic_int_least8_t

Definition at line 59 of file stdatomic.h.

◆ atomic_uint_least8_t

typedef intptr_t atomic_uint_least8_t

Definition at line 60 of file stdatomic.h.

◆ atomic_int_least16_t

typedef intptr_t atomic_int_least16_t

Definition at line 61 of file stdatomic.h.

◆ atomic_uint_least16_t

typedef intptr_t atomic_uint_least16_t

Definition at line 62 of file stdatomic.h.

◆ atomic_int_least32_t

typedef intptr_t atomic_int_least32_t

Definition at line 63 of file stdatomic.h.

◆ atomic_uint_least32_t

typedef intptr_t atomic_uint_least32_t

Definition at line 64 of file stdatomic.h.

◆ atomic_int_least64_t

typedef intptr_t atomic_int_least64_t

Definition at line 65 of file stdatomic.h.

◆ atomic_uint_least64_t

typedef intptr_t atomic_uint_least64_t

Definition at line 66 of file stdatomic.h.

◆ atomic_int_fast8_t

typedef intptr_t atomic_int_fast8_t

Definition at line 67 of file stdatomic.h.

◆ atomic_uint_fast8_t

typedef intptr_t atomic_uint_fast8_t

Definition at line 68 of file stdatomic.h.

◆ atomic_int_fast16_t

typedef intptr_t atomic_int_fast16_t

Definition at line 69 of file stdatomic.h.

◆ atomic_uint_fast16_t

typedef intptr_t atomic_uint_fast16_t

Definition at line 70 of file stdatomic.h.

◆ atomic_int_fast32_t

typedef intptr_t atomic_int_fast32_t

Definition at line 71 of file stdatomic.h.

◆ atomic_uint_fast32_t

typedef intptr_t atomic_uint_fast32_t

Definition at line 72 of file stdatomic.h.

◆ atomic_int_fast64_t

typedef intptr_t atomic_int_fast64_t

Definition at line 73 of file stdatomic.h.

◆ atomic_uint_fast64_t

typedef intptr_t atomic_uint_fast64_t

Definition at line 74 of file stdatomic.h.

◆ atomic_intptr_t

typedef intptr_t atomic_intptr_t

Definition at line 75 of file stdatomic.h.

◆ atomic_uintptr_t

typedef intptr_t atomic_uintptr_t

Definition at line 76 of file stdatomic.h.

◆ atomic_size_t

typedef intptr_t atomic_size_t

Definition at line 77 of file stdatomic.h.

◆ atomic_ptrdiff_t

typedef intptr_t atomic_ptrdiff_t

Definition at line 78 of file stdatomic.h.

◆ atomic_intmax_t

typedef intptr_t atomic_intmax_t

Definition at line 79 of file stdatomic.h.

◆ atomic_uintmax_t

typedef intptr_t atomic_uintmax_t

Definition at line 80 of file stdatomic.h.

Function Documentation

◆ avpriv_atomic_lock()

void avpriv_atomic_lock ( void  )

◆ avpriv_atomic_unlock()

void avpriv_atomic_unlock ( void  )

◆ atomic_thread_fence()

static void atomic_thread_fence ( int  order)
inlinestatic

Definition at line 85 of file stdatomic.h.

◆ atomic_store()

static void atomic_store ( intptr_t *  object,
intptr_t  desired 
)
inlinestatic

Definition at line 91 of file stdatomic.h.

◆ atomic_load()

static intptr_t atomic_load ( intptr_t *  object)
inlinestatic

Definition at line 101 of file stdatomic.h.

◆ atomic_exchange()

static intptr_t atomic_exchange ( intptr_t *  object,
intptr_t  desired 
)
inlinestatic

Definition at line 113 of file stdatomic.h.

◆ atomic_compare_exchange_strong()

static int atomic_compare_exchange_strong ( intptr_t *  object,
intptr_t *  expected,
intptr_t  desired 
)
inlinestatic

Definition at line 126 of file stdatomic.h.