FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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_thread_fence(order)   ((void)0)
 
#define atomic_signal_fence(order)   ((void)0)
 
#define atomic_is_lock_free(obj)   0
 
#define atomic_store(object, desired)
 
#define atomic_store_explicit(object, desired, order)   atomic_store(object, desired)
 
#define atomic_load(object)   (*(object))
 
#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

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

#define ATOMIC_FLAG_INIT   0

Definition at line 29 of file stdatomic.h.

#define ATOMIC_VAR_INIT (   value)    (value)

Definition at line 31 of file stdatomic.h.

#define atomic_init (   obj,
  value 
)
#define kill_dependency (   y)    ((void)0)

Definition at line 38 of file stdatomic.h.

#define atomic_thread_fence (   order)    ((void)0)

Definition at line 40 of file stdatomic.h.

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

Definition at line 43 of file stdatomic.h.

#define atomic_is_lock_free (   obj)    0

Definition at line 46 of file stdatomic.h.

#define atomic_store (   object,
  desired 
)
#define atomic_store_explicit (   object,
  desired,
  order 
)    atomic_store(object, desired)
#define atomic_load (   object)    (*(object))
#define atomic_load_explicit (   object,
  order 
)    atomic_load(object)
#define atomic_exchange_explicit (   object,
  desired,
  order 
)    atomic_exchange(object, desired)

Definition at line 106 of file stdatomic.h.

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

Definition at line 123 of file stdatomic.h.

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

Definition at line 126 of file stdatomic.h.

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

Definition at line 129 of file stdatomic.h.

#define FETCH_MODIFY (   opname,
  op 
)
Value:
static inline intptr_t atomic_fetch_ ## opname(intptr_t *object, intptr_t operand) \
{ \
intptr_t ret; \
ret = *object; \
*object = *object op operand; \
return ret; \
}
return
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 132 of file stdatomic.h.

#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)

Definition at line 152 of file stdatomic.h.

Referenced by v4l2_free_buffer().

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

Definition at line 155 of file stdatomic.h.

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

Definition at line 158 of file stdatomic.h.

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

Definition at line 161 of file stdatomic.h.

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

Definition at line 164 of file stdatomic.h.

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

Definition at line 167 of file stdatomic.h.

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

Definition at line 170 of file stdatomic.h.

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

Definition at line 173 of file stdatomic.h.

Typedef Documentation

typedef intptr_t atomic_flag

Definition at line 48 of file stdatomic.h.

typedef intptr_t atomic_bool

Definition at line 49 of file stdatomic.h.

typedef intptr_t atomic_char

Definition at line 50 of file stdatomic.h.

typedef intptr_t atomic_schar

Definition at line 51 of file stdatomic.h.

typedef intptr_t atomic_uchar

Definition at line 52 of file stdatomic.h.

typedef intptr_t atomic_short

Definition at line 53 of file stdatomic.h.

typedef intptr_t atomic_ushort

Definition at line 54 of file stdatomic.h.

typedef intptr_t atomic_int

Definition at line 55 of file stdatomic.h.

typedef intptr_t atomic_uint

Definition at line 56 of file stdatomic.h.

typedef intptr_t atomic_long

Definition at line 57 of file stdatomic.h.

typedef intptr_t atomic_ulong

Definition at line 58 of file stdatomic.h.

typedef intptr_t atomic_llong

Definition at line 59 of file stdatomic.h.

typedef intptr_t atomic_ullong

Definition at line 60 of file stdatomic.h.

typedef intptr_t atomic_wchar_t

Definition at line 61 of file stdatomic.h.

typedef intptr_t atomic_int_least8_t

Definition at line 62 of file stdatomic.h.

typedef intptr_t atomic_uint_least8_t

Definition at line 63 of file stdatomic.h.

typedef intptr_t atomic_int_least16_t

Definition at line 64 of file stdatomic.h.

typedef intptr_t atomic_uint_least16_t

Definition at line 65 of file stdatomic.h.

typedef intptr_t atomic_int_least32_t

Definition at line 66 of file stdatomic.h.

typedef intptr_t atomic_uint_least32_t

Definition at line 67 of file stdatomic.h.

typedef intptr_t atomic_int_least64_t

Definition at line 68 of file stdatomic.h.

typedef intptr_t atomic_uint_least64_t

Definition at line 69 of file stdatomic.h.

typedef intptr_t atomic_int_fast8_t

Definition at line 70 of file stdatomic.h.

typedef intptr_t atomic_uint_fast8_t

Definition at line 71 of file stdatomic.h.

typedef intptr_t atomic_int_fast16_t

Definition at line 72 of file stdatomic.h.

typedef intptr_t atomic_uint_fast16_t

Definition at line 73 of file stdatomic.h.

typedef intptr_t atomic_int_fast32_t

Definition at line 74 of file stdatomic.h.

typedef intptr_t atomic_uint_fast32_t

Definition at line 75 of file stdatomic.h.

typedef intptr_t atomic_int_fast64_t

Definition at line 76 of file stdatomic.h.

typedef intptr_t atomic_uint_fast64_t

Definition at line 77 of file stdatomic.h.

typedef intptr_t atomic_intptr_t

Definition at line 78 of file stdatomic.h.

typedef intptr_t atomic_uintptr_t

Definition at line 79 of file stdatomic.h.

typedef intptr_t atomic_size_t

Definition at line 80 of file stdatomic.h.

typedef intptr_t atomic_ptrdiff_t

Definition at line 81 of file stdatomic.h.

typedef intptr_t atomic_intmax_t

Definition at line 82 of file stdatomic.h.

typedef intptr_t atomic_uintmax_t

Definition at line 83 of file stdatomic.h.

Function Documentation

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

Definition at line 99 of file stdatomic.h.

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

Definition at line 109 of file stdatomic.h.