Blender  V3.3
Macros | Functions
atomic_ops_msvc.h File Reference
#include "atomic_ops_utils.h"
#include <intrin.h>
#include <windows.h>

Go to the source code of this file.

Macros

#define NOGDI
 
#define NOMINMAX
 
#define WIN32_LEAN_AND_MEAN
 
#define __atomic_impl_load_generic(v)   (MemoryBarrier(), *(v))
 
#define __atomic_impl_store_generic(p, v)
 

Functions

ATOMIC_INLINE uint64_t atomic_add_and_fetch_uint64 (uint64_t *p, uint64_t x)
 
ATOMIC_INLINE uint64_t atomic_sub_and_fetch_uint64 (uint64_t *p, uint64_t x)
 
ATOMIC_INLINE uint64_t atomic_cas_uint64 (uint64_t *v, uint64_t old, uint64_t _new)
 
ATOMIC_INLINE uint64_t atomic_load_uint64 (const uint64_t *v)
 
ATOMIC_INLINE void atomic_store_uint64 (uint64_t *p, uint64_t v)
 
ATOMIC_INLINE uint64_t atomic_fetch_and_add_uint64 (uint64_t *p, uint64_t x)
 
ATOMIC_INLINE uint64_t atomic_fetch_and_sub_uint64 (uint64_t *p, uint64_t x)
 
ATOMIC_INLINE int64_t atomic_add_and_fetch_int64 (int64_t *p, int64_t x)
 
ATOMIC_INLINE int64_t atomic_sub_and_fetch_int64 (int64_t *p, int64_t x)
 
ATOMIC_INLINE int64_t atomic_cas_int64 (int64_t *v, int64_t old, int64_t _new)
 
ATOMIC_INLINE int64_t atomic_load_int64 (const int64_t *v)
 
ATOMIC_INLINE void atomic_store_int64 (int64_t *p, int64_t v)
 
ATOMIC_INLINE int64_t atomic_fetch_and_add_int64 (int64_t *p, int64_t x)
 
ATOMIC_INLINE int64_t atomic_fetch_and_sub_int64 (int64_t *p, int64_t x)
 
ATOMIC_INLINE uint32_t atomic_add_and_fetch_uint32 (uint32_t *p, uint32_t x)
 
ATOMIC_INLINE uint32_t atomic_sub_and_fetch_uint32 (uint32_t *p, uint32_t x)
 
ATOMIC_INLINE uint32_t atomic_cas_uint32 (uint32_t *v, uint32_t old, uint32_t _new)
 
ATOMIC_INLINE uint32_t atomic_load_uint32 (const uint32_t *v)
 
ATOMIC_INLINE void atomic_store_uint32 (uint32_t *p, uint32_t v)
 
ATOMIC_INLINE uint32_t atomic_fetch_and_add_uint32 (uint32_t *p, uint32_t x)
 
ATOMIC_INLINE uint32_t atomic_fetch_and_or_uint32 (uint32_t *p, uint32_t x)
 
ATOMIC_INLINE uint32_t atomic_fetch_and_and_uint32 (uint32_t *p, uint32_t x)
 
ATOMIC_INLINE int32_t atomic_add_and_fetch_int32 (int32_t *p, int32_t x)
 
ATOMIC_INLINE int32_t atomic_sub_and_fetch_int32 (int32_t *p, int32_t x)
 
ATOMIC_INLINE int32_t atomic_cas_int32 (int32_t *v, int32_t old, int32_t _new)
 
ATOMIC_INLINE int32_t atomic_load_int32 (const int32_t *v)
 
ATOMIC_INLINE void atomic_store_int32 (int32_t *p, int32_t v)
 
ATOMIC_INLINE int32_t atomic_fetch_and_add_int32 (int32_t *p, int32_t x)
 
ATOMIC_INLINE int32_t atomic_fetch_and_or_int32 (int32_t *p, int32_t x)
 
ATOMIC_INLINE int32_t atomic_fetch_and_and_int32 (int32_t *p, int32_t x)
 
ATOMIC_INLINE int16_t atomic_fetch_and_or_int16 (int16_t *p, int16_t x)
 
ATOMIC_INLINE int16_t atomic_fetch_and_and_int16 (int16_t *p, int16_t x)
 
ATOMIC_INLINE uint8_t atomic_fetch_and_and_uint8 (uint8_t *p, uint8_t b)
 
ATOMIC_INLINE uint8_t atomic_fetch_and_or_uint8 (uint8_t *p, uint8_t b)
 
ATOMIC_INLINE int8_t atomic_fetch_and_and_int8 (int8_t *p, int8_t b)
 
ATOMIC_INLINE int8_t atomic_fetch_and_or_int8 (int8_t *p, int8_t b)
 

Macro Definition Documentation

◆ __atomic_impl_load_generic

#define __atomic_impl_load_generic (   v)    (MemoryBarrier(), *(v))

Definition at line 55 of file atomic_ops_msvc.h.

◆ __atomic_impl_store_generic

#define __atomic_impl_store_generic (   p,
  v 
)
Value:
do { \
*(p) = (v); \
MemoryBarrier(); \
} while (0)
ATTR_WARN_UNUSED_RESULT const BMVert * v

Definition at line 56 of file atomic_ops_msvc.h.

◆ NOGDI

#define NOGDI

Definition at line 38 of file atomic_ops_msvc.h.

◆ NOMINMAX

#define NOMINMAX

Definition at line 40 of file atomic_ops_msvc.h.

◆ WIN32_LEAN_AND_MEAN

#define WIN32_LEAN_AND_MEAN

Definition at line 42 of file atomic_ops_msvc.h.

Function Documentation

◆ atomic_add_and_fetch_int32()

ATOMIC_INLINE int32_t atomic_add_and_fetch_int32 ( int32_t p,
int32_t  x 
)

Definition at line 179 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_add_and_fetch_int64()

ATOMIC_INLINE int64_t atomic_add_and_fetch_int64 ( int64_t p,
int64_t  x 
)

Definition at line 100 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_add_and_fetch_uint32()

ATOMIC_INLINE uint32_t atomic_add_and_fetch_uint32 ( uint32_t p,
uint32_t  x 
)

◆ atomic_add_and_fetch_uint64()

ATOMIC_INLINE uint64_t atomic_add_and_fetch_uint64 ( uint64_t p,
uint64_t  x 
)

◆ atomic_cas_int32()

ATOMIC_INLINE int32_t atomic_cas_int32 ( int32_t v,
int32_t  old,
int32_t  _new 
)

Definition at line 189 of file atomic_ops_msvc.h.

References v.

Referenced by TEST().

◆ atomic_cas_int64()

ATOMIC_INLINE int64_t atomic_cas_int64 ( int64_t v,
int64_t  old,
int64_t  _new 
)

Definition at line 110 of file atomic_ops_msvc.h.

References v.

Referenced by TEST().

◆ atomic_cas_uint32()

ATOMIC_INLINE uint32_t atomic_cas_uint32 ( uint32_t v,
uint32_t  old,
uint32_t  _new 
)

◆ atomic_cas_uint64()

ATOMIC_INLINE uint64_t atomic_cas_uint64 ( uint64_t v,
uint64_t  old,
uint64_t  _new 
)

Definition at line 74 of file atomic_ops_msvc.h.

References v.

Referenced by atomic_cas_ptr(), atomic_cas_u(), atomic_cas_z(), and TEST().

◆ atomic_fetch_and_add_int32()

ATOMIC_INLINE int32_t atomic_fetch_and_add_int32 ( int32_t p,
int32_t  x 
)

◆ atomic_fetch_and_add_int64()

ATOMIC_INLINE int64_t atomic_fetch_and_add_int64 ( int64_t p,
int64_t  x 
)

Definition at line 125 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_fetch_and_add_uint32()

ATOMIC_INLINE uint32_t atomic_fetch_and_add_uint32 ( uint32_t p,
uint32_t  x 
)

◆ atomic_fetch_and_add_uint64()

ATOMIC_INLINE uint64_t atomic_fetch_and_add_uint64 ( uint64_t p,
uint64_t  x 
)

◆ atomic_fetch_and_and_int16()

ATOMIC_INLINE int16_t atomic_fetch_and_and_int16 ( int16_t p,
int16_t  x 
)

Definition at line 228 of file atomic_ops_msvc.h.

References x.

Referenced by BKE_previewimg_finish(), and TEST().

◆ atomic_fetch_and_and_int32()

ATOMIC_INLINE int32_t atomic_fetch_and_and_int32 ( int32_t p,
int32_t  x 
)

Definition at line 214 of file atomic_ops_msvc.h.

References x.

Referenced by BKE_id_tag_clear_atomic(), and TEST().

◆ atomic_fetch_and_and_int8()

ATOMIC_INLINE int8_t atomic_fetch_and_and_int8 ( int8_t p,
int8_t  b 
)

Definition at line 259 of file atomic_ops_msvc.h.

References usdtokens::b().

Referenced by TEST().

◆ atomic_fetch_and_and_uint32()

ATOMIC_INLINE uint32_t atomic_fetch_and_and_uint32 ( uint32_t p,
uint32_t  x 
)

Definition at line 173 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_fetch_and_and_uint8()

ATOMIC_INLINE uint8_t atomic_fetch_and_and_uint8 ( uint8_t p,
uint8_t  b 
)

Definition at line 238 of file atomic_ops_msvc.h.

References usdtokens::b().

Referenced by atomic_fetch_and_and_char(), dynamic_paint_effect_drip_cb(), and TEST().

◆ atomic_fetch_and_or_int16()

ATOMIC_INLINE int16_t atomic_fetch_and_or_int16 ( int16_t p,
int16_t  x 
)

Definition at line 223 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_fetch_and_or_int32()

ATOMIC_INLINE int32_t atomic_fetch_and_or_int32 ( int32_t p,
int32_t  x 
)

Definition at line 209 of file atomic_ops_msvc.h.

References x.

Referenced by BKE_id_tag_set_atomic(), and TEST().

◆ atomic_fetch_and_or_int8()

ATOMIC_INLINE int8_t atomic_fetch_and_or_int8 ( int8_t p,
int8_t  b 
)

Definition at line 269 of file atomic_ops_msvc.h.

References usdtokens::b().

Referenced by TEST().

◆ atomic_fetch_and_or_uint32()

ATOMIC_INLINE uint32_t atomic_fetch_and_or_uint32 ( uint32_t p,
uint32_t  x 
)

Definition at line 168 of file atomic_ops_msvc.h.

References x.

Referenced by mesh_batch_cache_add_request(), mesh_cd_layers_type_merge(), and TEST().

◆ atomic_fetch_and_or_uint8()

ATOMIC_INLINE uint8_t atomic_fetch_and_or_uint8 ( uint8_t p,
uint8_t  b 
)

◆ atomic_fetch_and_sub_int64()

ATOMIC_INLINE int64_t atomic_fetch_and_sub_int64 ( int64_t p,
int64_t  x 
)

Definition at line 130 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_fetch_and_sub_uint64()

ATOMIC_INLINE uint64_t atomic_fetch_and_sub_uint64 ( uint64_t p,
uint64_t  x 
)

Definition at line 94 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_load_int32()

ATOMIC_INLINE int32_t atomic_load_int32 ( const int32_t v)

Definition at line 194 of file atomic_ops_msvc.h.

References __atomic_impl_load_generic, and v.

Referenced by TEST().

◆ atomic_load_int64()

ATOMIC_INLINE int64_t atomic_load_int64 ( const int64_t v)

Definition at line 115 of file atomic_ops_msvc.h.

References __atomic_impl_load_generic, and v.

Referenced by TEST().

◆ atomic_load_uint32()

ATOMIC_INLINE uint32_t atomic_load_uint32 ( const uint32_t v)

Definition at line 153 of file atomic_ops_msvc.h.

References __atomic_impl_load_generic, and v.

Referenced by atomic_load_ptr(), atomic_load_z(), and TEST().

◆ atomic_load_uint64()

ATOMIC_INLINE uint64_t atomic_load_uint64 ( const uint64_t v)

Definition at line 79 of file atomic_ops_msvc.h.

References __atomic_impl_load_generic, and v.

Referenced by atomic_load_ptr(), atomic_load_z(), and TEST().

◆ atomic_store_int32()

ATOMIC_INLINE void atomic_store_int32 ( int32_t p,
int32_t  v 
)

Definition at line 199 of file atomic_ops_msvc.h.

References __atomic_impl_store_generic, and v.

Referenced by TEST().

◆ atomic_store_int64()

ATOMIC_INLINE void atomic_store_int64 ( int64_t p,
int64_t  v 
)

Definition at line 120 of file atomic_ops_msvc.h.

References __atomic_impl_store_generic, and v.

Referenced by TEST().

◆ atomic_store_uint32()

ATOMIC_INLINE void atomic_store_uint32 ( uint32_t p,
uint32_t  v 
)

Definition at line 158 of file atomic_ops_msvc.h.

References __atomic_impl_store_generic, and v.

Referenced by atomic_store_ptr(), atomic_store_z(), and TEST().

◆ atomic_store_uint64()

ATOMIC_INLINE void atomic_store_uint64 ( uint64_t p,
uint64_t  v 
)

Definition at line 84 of file atomic_ops_msvc.h.

References __atomic_impl_store_generic, and v.

Referenced by atomic_store_ptr(), atomic_store_z(), and TEST().

◆ atomic_sub_and_fetch_int32()

ATOMIC_INLINE int32_t atomic_sub_and_fetch_int32 ( int32_t p,
int32_t  x 
)

Definition at line 184 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_sub_and_fetch_int64()

ATOMIC_INLINE int64_t atomic_sub_and_fetch_int64 ( int64_t p,
int64_t  x 
)

Definition at line 105 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().

◆ atomic_sub_and_fetch_uint32()

ATOMIC_INLINE uint32_t atomic_sub_and_fetch_uint32 ( uint32_t p,
uint32_t  x 
)

◆ atomic_sub_and_fetch_uint64()

ATOMIC_INLINE uint64_t atomic_sub_and_fetch_uint64 ( uint64_t p,
uint64_t  x 
)

Definition at line 69 of file atomic_ops_msvc.h.

References x.

Referenced by TEST().