FFmpeg
Loading...
Searching...
No Matches
stdatomic.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <windows.h>

Go to the source code of this file.

Macros

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

Functions

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 26 of file stdatomic.h.

◆ ATOMIC_VAR_INIT

#define ATOMIC_VAR_INIT ( value)
Value:
double value
Definition eval.c:102

Definition at line 28 of file stdatomic.h.

◆ atomic_init

#define atomic_init ( obj,
value )
Value:
do { \
*(obj) = (value); \
} while(0)

Definition at line 30 of file stdatomic.h.

◆ kill_dependency

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

Definition at line 35 of file stdatomic.h.

◆ atomic_thread_fence

#define atomic_thread_fence ( order)
Value:
MemoryBarrier();

Definition at line 37 of file stdatomic.h.

◆ atomic_signal_fence

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

Definition at line 40 of file stdatomic.h.

◆ atomic_is_lock_free

#define atomic_is_lock_free ( obj)
Value:
0

Definition at line 43 of file stdatomic.h.

◆ atomic_store

#define atomic_store ( object,
desired )
Value:
do { \
*(object) = (desired); \
MemoryBarrier(); \
} while (0)

Definition at line 82 of file stdatomic.h.

◆ atomic_store_explicit

#define atomic_store_explicit ( object,
desired,
order )
Value:
atomic_store(object, desired)
#define atomic_store(object, desired)
Definition stdatomic.h:85

Definition at line 88 of file stdatomic.h.

◆ atomic_load

#define atomic_load ( object)
Value:
(MemoryBarrier(), *(object))

Definition at line 91 of file stdatomic.h.

◆ atomic_load_explicit

#define atomic_load_explicit ( object,
order )
Value:
atomic_load(object)
#define atomic_load(object)
Definition stdatomic.h:93

Definition at line 94 of file stdatomic.h.

◆ atomic_exchange

#define atomic_exchange ( object,
desired )
Value:
InterlockedExchangePointer((PVOID volatile *)object, (PVOID)desired)

Definition at line 97 of file stdatomic.h.

◆ atomic_exchange_explicit

#define atomic_exchange_explicit ( object,
desired,
order )
Value:
atomic_exchange(object, desired)
#define atomic_exchange(object, desired)
Definition stdatomic.h:97

Definition at line 100 of file stdatomic.h.

◆ atomic_compare_exchange_strong_explicit

#define atomic_compare_exchange_strong_explicit ( object,
expected,
desired,
success,
failure )
Value:
atomic_compare_exchange_strong(object, expected, desired)
static int atomic_compare_exchange_strong(intptr_t *object, intptr_t *expected, intptr_t desired)
Definition stdatomic.h:109

Definition at line 112 of file stdatomic.h.

◆ atomic_compare_exchange_weak

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

Definition at line 115 of file stdatomic.h.

◆ atomic_compare_exchange_weak_explicit

#define atomic_compare_exchange_weak_explicit ( object,
expected,
desired,
success,
failure )
Value:
atomic_compare_exchange_weak(object, expected, desired)
#define atomic_compare_exchange_weak(object, expected, desired)
Definition stdatomic.h:126

Definition at line 118 of file stdatomic.h.

◆ atomic_fetch_add

◆ atomic_fetch_sub

#define atomic_fetch_sub ( object,
operand )
Value:
InterlockedExchangeAdd(object, -(operand))

Definition at line 140 of file stdatomic.h.

Referenced by ff_mediacodec_dec_unref(), mediacodec_buffer_release(), sheduled_done(), and v4l2_free_buffer().

◆ atomic_fetch_or

#define atomic_fetch_or ( object,
operand )
Value:
InterlockedOr(object, operand)

Definition at line 143 of file stdatomic.h.

◆ atomic_fetch_xor

#define atomic_fetch_xor ( object,
operand )
Value:
InterlockedXor(object, operand)

Definition at line 146 of file stdatomic.h.

◆ atomic_fetch_and

#define atomic_fetch_and ( object,
operand )
Value:
InterlockedAnd(object, operand)

Definition at line 149 of file stdatomic.h.

◆ atomic_fetch_add_explicit

#define atomic_fetch_add_explicit ( object,
operand,
order )
Value:
atomic_fetch_add(object, operand)
#define atomic_fetch_add(object, operand)
Definition stdatomic.h:137

Definition at line 153 of file stdatomic.h.

◆ atomic_fetch_sub_explicit

#define atomic_fetch_sub_explicit ( object,
operand,
order )
Value:
atomic_fetch_sub(object, operand)
#define atomic_fetch_sub(object, operand)
Definition stdatomic.h:140

Definition at line 156 of file stdatomic.h.

◆ atomic_fetch_or_explicit

#define atomic_fetch_or_explicit ( object,
operand,
order )
Value:
atomic_fetch_or(object, operand)
#define atomic_fetch_or(object, operand)
Definition stdatomic.h:143

Definition at line 159 of file stdatomic.h.

◆ atomic_fetch_xor_explicit

#define atomic_fetch_xor_explicit ( object,
operand,
order )
Value:
atomic_fetch_xor(object, operand)
#define atomic_fetch_xor(object, operand)
Definition stdatomic.h:146

Definition at line 162 of file stdatomic.h.

◆ atomic_fetch_and_explicit

#define atomic_fetch_and_explicit ( object,
operand,
order )
Value:
atomic_fetch_and(object, operand)
#define atomic_fetch_and(object, operand)
Definition stdatomic.h:149

Definition at line 165 of file stdatomic.h.

◆ atomic_flag_test_and_set

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

Definition at line 168 of file stdatomic.h.

◆ atomic_flag_test_and_set_explicit

#define atomic_flag_test_and_set_explicit ( object,
order )
Value:
#define atomic_flag_test_and_set(object)
Definition stdatomic.h:164

Definition at line 171 of file stdatomic.h.

◆ atomic_flag_clear

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

Definition at line 174 of file stdatomic.h.

◆ atomic_flag_clear_explicit

#define atomic_flag_clear_explicit ( object,
order )
Value:
#define atomic_flag_clear(object)
Definition stdatomic.h:170

Definition at line 177 of file stdatomic.h.

Function Documentation

◆ atomic_compare_exchange_strong()

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

Definition at line 103 of file stdatomic.h.